12

Axis2に代わるものはありますか?または、それを機能させる方法(たとえば、異なるデータバインディング)?

Retrieving document at '...'.
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:271)
        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:224)
        ... 2 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
        ... 3 more
Caused by: org.apache.axis2.schema.SchemaCompilationException: can not find type {http://schemas.xmlsoap.org/soap/encoding/}Array from the parent schema ...        at org.apache.axis2.schema.SchemaCompiler.copyMetaInfoHierarchy(SchemaCompiler.java:1296)
        at org.apache.axis2.schema.SchemaCompiler.processComplexContent(SchemaCompiler.java:1258)
        at org.apache.axis2.schema.SchemaCompiler.processContentModel(SchemaCompiler.java:1153)
        at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1097)
        at org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1017)
        at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:931)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:766)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:552)
        at org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:1991)
        at org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1874)
        at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1081)
        at org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1017)
        at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:931)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:766)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:552)
        at org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:1991)
        at org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:1874)
        at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1081)
        at org.apache.axis2.schema.SchemaCompiler.processAnonymousComplexSchemaType(SchemaCompiler.java:980)
        at org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:934)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:592)
        at org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:563)
        at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:370)
        at org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:280)
        at org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:103)
        ... 8 more

注:ApacheCXFも失敗します:(

4

8 に答える 8

11

古いスタイルのrpc/エンコードされたWebサービスのJavaで使用できるオプションは3つだけです。

1)SUNによるJAX-RPCのリファレンス実装(wscompile

2)WebLogicのclientgen(8.1バージョンを使用しました)

3)Axis1 v1.4 wsdl2java

もともとはAxis1.4を使用していましたが、比較的大きなサービス応答(> 20k)でパフォーマンスが大幅に低下しました。つまり、クライアントの処理時間は、解析なしのプレーンなHTTPリクエストと比較して2倍以上増加しました。そして、応答が大きくなると時間が長くなります。1MBの大きな応答を逆シリアル化するのに30秒以上かかりました。

SUNで生成されたクライアントは実際には機能せず、要求に応じて次のメッセージで失敗しました。

unexpected element name: 
   expected=getSubscriberInfoReturn, 
   actual={ws.generated.api}getSubscriberInfoReturn

WebLogicの8.1clientgenを使用してみて、クライアントコードをAxis1.4で生成されたクライアントのパフォーマンスと比較しました。そしてアクシスがレースに勝った。したがって、Axisクライアントは比較的大きな応答ではそれほどパフォーマンスが良くありませんが、古いrpc/エンコードされたWebサービスには最適なオプションです:(。

于 2009-09-03T07:27:03.503 に答える
5

RPCエンコーディングはAxis2ではサポートされていません。ソース:http ://wiki.apache.org/ws/StackComparison

于 2010-07-26T12:58:16.123 に答える
2

Axis 1を試してみてください、私はこの正確な理由でそれを使用しました。

于 2009-08-31T13:34:27.393 に答える
1

axis2のSimpleDataBindingにも問題がありました。AxisDataBindingオプションを使用してそれらを解決しました。これはコーディングの観点からは少し重いですが、結局は機能します。

ADBの詳細

さらに、axis1も興味深いオプションであると述べて、Robertに同意します。

于 2009-08-31T13:43:03.483 に答える
1

wsdl2javaコマンドに以下のパラメータを追加できます

-d xmlbeans
于 2016-06-22T08:44:39.120 に答える
0

私はこれについて深く掘り下げるつもりはありませんが、あなたが代替案を求めたので:

Java6SEおよびJava5EEには、Metro JAX-WS(リファレンス)実装が付属しています。

javax.xml.ws名前空間に存在します。

SunのDeveloperNetworkには、便利なJavaSE6プラットフォームを備えたJAX-WS2.0の紹介に関する記事があります。

とはいえ、EclipseはJAX-WSにあまり適していません。

于 2009-08-31T14:00:28.983 に答える
0

この問題は、soapエンコーディングスタイルが古いaxis2 wsdl2javaであるか、wsimportが古いRPCエンコーディングスタイルを理解できない場合に発生します。そのため、axis 1.4以前のバージョンのaxisを使用すると、wsdl2javaが古いaxisのツールとして検出されなくなります。 axis jarファイルでクラスファイルとして検索するため、クラスパスを手動で設定してそのクラスを使用する必要があります

D:\ axis-1_4 \ lib> java -classpath \ axis-1_4 \ lib * org.apache.axis.wsdl.WSDL2Java urwsdl

于 2013-07-26T09:47:38.370 に答える
0

ここにあるsoapenc.xsdの回答投稿ClickatellSOAPwsdlから JAXBjavaクラスへの回答が役に立ちまし た。

axis1.5のwsdl2javaユーティリティを使用していましたが、配列で同様のエラーが発生しました。

Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:271)
            at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
            at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
    Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
            at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
            at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:224)
            ... 2 more
    Caused by: java.lang.reflect.InvocationTargetException
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
            ... 3 more
    Caused by: org.apache.axis2.schema.SchemaCompilationException: can not find type {http://schemas.xmlsoap.org/soap/encoding/}Array from the parent schema ....
            at org.apache.axis2.schema.SchemaCompiler.copyMetaInfoHierarchy(SchemaCompiler.java:1296)
            at org.apache.axis2.schema.SchemaCompiler.processComplexContent(SchemaCompiler.java:1258)
            at org.apache.axis2.schema.SchemaCompiler.processContentModel(SchemaCompiler.java:1153)
            at org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1097)
            at org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1017)

Webサイト「 http://schemas.xmlsoap.org/soap/encoding/ 」のコンテンツを使用してsoapenc.xsdを作成し、wsdlファイルを更新してみました。以下に示すように、これは私にとって本当にうまくいきました。

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1= .. xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns=.. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace=..>
<types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace=.. xmlns:ns1=.. xmlns:ns2=.. xmlns:tns=.. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
</types>
<import location="soapenc.xsd" namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<message name="Input">
    <part name=../>
</message>
<message name="Output">
    <part name=../>
</message>
<portType name=".."> .. </portType>
<binding name="..." type="tns:"..">
    <operation name="...">          ..          </operation>
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
</binding>
<service name="...">
    <port binding="tns:..." name="...">         <soap:address location="..."/>      </port>
</service>

于 2019-03-19T08:30:24.110 に答える