問題タブ [wsimport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - wsimport が誤ったコードを生成する
wsimport を使用して Java スタブ ファイルを生成します。このために、Eclipse で ant ビルド ファイルを使用します。
タスクはエラーなしで実行されます。Knowledgebase.java および KnowledgebasePort.java など、さまざまな Java ファイルが作成されます。Knowledgebase.java には、次のコンストラクタがあります。
それらの場合、「コンストラクター Service(...) は未定義です」というエラーが表示されます。現在の jax-ws jar ファイルをインポートしました。生成プロセスが壊れていますか?間違った jar を使用していますか?それともエラーはどこにありますか?
wsdl - soap-rpc-style の WSDL がコンパイルされない
この wsdl ファイルを使用して、Web サービスを記述しています。
GetValueRequest.xsd
を実行するたびにwsimport
、次のエラーが発生します。
getValueForKey タイプを xsd-schemafile にエクスポートしたので、このエラーがわかりません... 一日中この sh*** を試していますgrml
eclipse - javax.xml.stream.FactoryFinder$ConfigurationError: プロバイダー com.ctc.wstx.stax.WstxInputFactory が見つかりません
既存の (動作中の) Web サービスを呼び出す GWT アプリケーションを開発しようとしています。私は使っている:
3 つのコンポーネント アプリケーションを個別にテストしたところ、正常に動作しました。
上位 2 つのコードをマージして、GWT サーバー側コード内から Web サービスを呼び出す GWT アプリケーションを作成すると、マージされたアプリケーションが以下の例外で失敗します。標準の GWT の依存関係と標準の JAX-WS の依存関係の間でクラスの競合が発生していると思われます。
次の例外が発生します。
javax.servlet.ServletContext ログ: 着信 RPC 呼び出しのディスパッチ中に例外が発生しました.lang.String) throws java.lang.IllegalArgumentException' が予期しない例外をスローしました: javax.xml.stream.FactoryFinder$ConfigurationError: プロバイダー com.ctc.wstx.stax.WstxInputFactory が com.google.gwt.user.server で見つかりません。 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588) で rpc.RPC.encodeResponseForFailure(RPC.java:385) com.google.gwt.user.server.rpc.RemoteServiceServlet で。 com.google.gwt.user.server.rpc の processCall(RemoteServiceServlet.java:208)。com.google.gwt.user.server.rpc の RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)。AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) で javax.servlet.http.HttpServlet.service(HttpServlet.java:637) で javax.servlet.http.HttpServlet.service(HttpServlet.java:717) で org.mortbay.jetty .servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter) .java:35) org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) で com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) でorg.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) com.google.apphosting.utils.servlet.TransactionCleanupFilter.org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) の doFilter(TransactionCleanupFilter.java:43) com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) の doFilter(TransactionCleanupFilter.java:43) org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) で com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) で org.mortbay.jetty.servlet .ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) ) org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) で org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) で com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) で org.mortbay.jetty.handler .HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java) :152) org.mortbay.jetty.Server.handle(Server.java:326) で org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) で org.mortbay.jetty.HttpConnection$RequestHandler.content( HttpConnection.java:938) org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)原因: javax.xml.stream.FactoryFinder$ConfigurationError: プロバイダー com.ctc.wstx.stax.WstxInputFactory が javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:154) で javax.xml.stream.FactoryFinder で見つかりませんcom.sun.xml の javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:123) の javax.xml.stream.FactoryFinder.find(FactoryFinder.java:233) の .findJarServiceProvider(FactoryFinder.java:308)。 com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.(XMLStreamReaderFactory.java:67) com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:794) com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java: 251) com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:118) で com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:254) でcom.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:217) com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:165) com.sun.xml .internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:93) at javax.xml.ws.Service.(Service.java:56) at amx.devenvironment.helloworld1.JavaHelloComponent100201106212354ServiceHelloWorldPTHelloWorldPT.(JavaHelloComponent100201106212354ServiceHelloWorldPTHelloWorldPT.java:46) で sample.HelloWorldGetResponse.getResponse(HelloWorldGetResponse.java:16) で com.mjg.training.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:46) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) ) com の java.lang.reflect.Method.invoke(Method.java:597) の sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) .google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)GreetingServiceImpl.greetServer(GreetingServiceImpl.java:46) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) の sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) java.lang.reflect.Method.invoke(Method.java:597) で com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) で com.google.gwt .user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)GreetingServiceImpl.greetServer(GreetingServiceImpl.java:46) の sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) の sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) の sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) java.lang.reflect.Method.invoke(Method.java:597) で com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) で com.google.gwt .user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)com.google.gwt.user.server.rpc.RPC の com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) の Method.invoke(Method.java:597)。 invokeAndEncodeResponse(RPC.java:569)com.google.gwt.user.server.rpc.RPC の com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) の Method.invoke(Method.java:597)。 invokeAndEncodeResponse(RPC.java:569)
以前、この例外が発生していました:
次の行をコードに追加することで解決しました。
最初の例外について、他の同様の回避策はありますか。
ありがとう、マット。
netbeans - NetBeansのWSDLURLからWebサービスクライアントを作成できません
WSDL URL
NetBeansIDE7.0のオプションを使用してWebサービスクライアントを作成しようとしています。残念ながら、作成できず、次のエラーで失敗します。
saxon9-dom.jarがクラスパス上にない限り、SaxonはDOMResultを書き込むことができません。
このエラーメッセージを見た後saxon9-dom.jar
、NetBeansのライブラリにが追加されているかどうかを確認しました。はい、すでに利用可能です。それでもエラーが表示される理由はわかりません。誰かが私に何が悪いのか教えてもらえますか?
このWSDL用のWebサービスクライアントを作成しようとしています。NetBeansで新しいWebサービスクライアントを作成するときに、[クライアントスタイル]オプションを選択JAX-WS Style
しています。
更新:
グーグルした後、私は次の2つの場所からいくつかの手がかりについて読みました:
1)http://www.mail-archive.com/fop-dev@xmlgraphics.apache.org/msg09659.html
これは、0.95以降に追加された新しいイベント処理フレームワークによるものです。さまざまなメッセージのリソースファイルを生成するビルドプロセスのステップでは、書き込み可能なDOM実装が必要なようです。
メッセージが示すように、Saxonはそのような実装を別のJARで提供します。これは、FOPトランクを構築するときにクラスパスに追加する必要があります。
2)http://xmlbeans.apache.org/sourceAndBinaries/index.html
XPath / XQueryを使用するには、saxonb9-0-0-4j.zipを追加でダウンロードし、それに含まれるファイルsaxon9.jarおよびsaxon9-dom.jarのクラスパスに配置する必要があります。zipはこちらから入手できます。ライセンスの問題により、このzipをバイナリ配布で配布することはできません。
そこで、クラスパスのsaxon9-dom.jarを変更することを考えました。以前からsaxon9 -dom.jarを使用していましたが、でsaxonb9-1-0-8j.zip
利用可能なsaxon9-dom.jarを含めようとするとsaxonb9-0-0-8j.zip
、このエラーはなくなり、次のように別のエラーが発生します。アイデア/手がかりはありますか?
android - wsimport(xsd/wsdl)で生成されたオブジェクトをAndroidでxmlにマーシャリングする方法は?
wsimport(xsd/wsdl)で生成されたオブジェクトをAndroidでxmlにマーシャリングする方法は? どんな助けでも大歓迎です。
java - WsImport Ant タスクと JDK 6
この質問と同様に、wsimport ant タスクを使用して、jax-ws を使用して Web サービス プロキシ クラスを生成しようとしています。次の追加の質問があります。
私が理解しているように、JDK 1.6 の最近のバージョンには jax-ws が含まれており、WsImport ant タスクは JDK の tools.jar ファイルで定義されています。
アリがこれを自動的に見つけないのはなぜですか?
Eclipseもこれを自動的に検出しないのはなぜですか?
JDK 6 で jax-ws を使用することに関するいくつかの参照を見つけましたが、これらは個別にダウンロードした jax-ws ライブラリをコピーし、それを JDK ext フォルダーにドロップすることに基づいているようです (これは、実際に現在、JDK にバンドルされています)。
jax-ws がすでに含まれている JDK 1.6 のバージョンで wsimport タスクを使用する適切な方法は何ですか?
私のビルドXML:
java - 共通の型を持つ複数の WSDL に対する WSImport の最適化
私は、20 以上の異なる Web サービスを含むかなり大規模な WS プロジェクトに取り組んでいます。これらの Web サービスは、互いに独立していますが、かなりの数の共通タイプを共有しています。プロキシ クラスを生成するために、ビルド スクリプトでwsimportを Ant ターゲットとして使用しています。
問題: WS (および対応する WSDL) の数が増えるにつれて、プロキシ クラスのビルド時間がかなり急上昇していることに気付きました。さらに調査 (およびプロファイリング) を行った結果、ビルド時間のかなりの部分が wsimport によって共通の型を繰り返し生成することに費やされていることがわかりました。これらのプロキシ クラスとその共通型の生成、コンパイル、およびパッケージ化には、約 15 ~ 20 分かかります。これは私たちにとって問題であり、ビルド時間を短縮する方法を探しています。
質問: 共通タイプを 1 回だけ生成する方法はありますか? グーグルで見つけたいくつかの解決策を調べました。1 つは、WSDL を解析して 1 つの WSDL に結合するWSDL アキュムレータを作成することで、wsimport が 1 回だけ呼び出されるようにしました。別の 1 つはエピソード ファイルの使用をほのめかしていましたが、さらに調査した結果、そのアプローチの使用には問題があることがわかりました。
注: 古い同様の質問を見たことがありますが、どれも回答がありませんでした。
別々の WSDL ファイルが同じオブジェクト クラスを参照していることを wsimport に伝えるにはどうすればよいですか?
binding - wsjaxbカスタム外部マッピング
カスタムJAXB外部マッピングファイルを実行する必要があります。これについてはすでに赤いチュートリアルであり、JAXBカスタマイズの適切な例を見つけることができません。私のシナリオでは、メインのWSDLファイルとメインのWSDLに含まれるセカンダリWSDLの2つのWSDLファイルがあります。そして、セカンダリWSDLファイルにはcomplexType
、カスタマイズしたい名前を持つ1つの定義があります。ところで、そのcomplexTypeの名前はですobjectFactory
。これで、外部のカスタマイズが本当に必要なものがわかりました。
私はこれまでに来たので、 wsimport path-to-my-main-wsdl -b customBindings.jaxb
出力を実行すると次のようになります
ファイルcustomBindings.jaxb
は次のようになります
customBindings.jaxb
私のファイルの2行目には、 2つのプロパティschemaLocation
とがありnode
ます。プロパティschemaLocation
はメインWSDLまたはセカンダリWSD1を指す必要がありますか?そして、プロパティはnode
必要なcomplexTypeへの正確なパス(XPath)ですか、それともこのようなものですか?node
そして、XPath(プロパティ)内の名前空間とは何ですか、それは何である必要がありますxs
か?そして、実際にはこれは何types
をschema1
意味しschemaLocation
ますか?
どうも
java - Java SOAP "wsimport" - ドキュメント/リテラルでラップされた WSDL からラップされたバインディングを強制しますか?
Java 6 JAX-WS "wsimport" ユーティリティは、指定された WSDL ファイルから Web サービス スケルトン (インターフェース) を生成するという素晴らしい仕事をしますが、個人的に厄介な例外が 1 つあります。
SOAP ドキュメント/リテラル ラップ スタイル(ここでも説明)を使用する WSDL を指定すると、「ベア」SOAP バインディング パラメーター スタイル(複数の引数と戻り値をメソッド シグネチャの「ホルダー」オブジェクトとして展開) でサービス インターフェイスを生成します。 WSDL で指定された単純なラップされたパラメーターと戻り値の代わりに。Axis2 wsdl2java などの他のツールは、ラッパー要素を入力パラメーターとして使用し、値を自動的に「アンラップ」する代わりに値を返します。
「wsimport」に SOAP バインディング パラメータを「ベア」ではなく「ラップ」として保持するように指示することはできますか?
java - ANT タスクでの wsimport の問題
これは、ANT が実行されているときに表示されます。パスを正しく設定できるものを誰か知っていますか? 私はEclipseを使用しており、JDKを使用しています.JAVA_HOMEも正しく設定されています。
前もって感謝します!
更新: 実際の理由は、build.xml で、${java.home} が JDK ではなく JRE を指していることだと思います... Windows で JAVA_HOME を設定しているときに、Eclipse の JDK も指しています。