問題タブ [jax-ws-customization]
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.
jakarta-ee - JAX-WS WebService実装のサーブレットインスタンスをプログラムで取得しますか?
私はトップダウンアプローチを使用してWebサービスに取り組んでおり、JAX-WSのwsimportを使用してWSDLからサービスタイプとインターフェイスを生成しています。これにより、次のようなポートタイプのインターフェイスが提供されます。これを実装します。
このサービスをアプリケーションサーバー(私の場合はTomcat)に追加する通常の方法は、実装クラスをサーブレットとしてweb.xmlに追加し、リスナーとしてWSServletContextListenerを追加することです。非常に大まかに言えば、コンテキストの初期化時に、リスナーは実装BeanをラップするServletAdaptersを構築し、それらをシンWSServletによって呼び出されるWSServletDelegateに追加するようです。実装へのリクエストはWSServletによって処理され、設定したURLパターンに基づいてデリゲートによってBeanに渡されます。
上記をプログラムで行う方法はありますか?上記のインターフェースのインスタンスを受け入れ、サーブレットのインスタンスを返すメソッドが必要です。サーブレットコンテキストに登録されている場合は、適切なリクエストをラップされた実装にルーティングします。何かのようなもの:
1つの要件は、静的構成ファイル(web.xmlやsun-jaxws.xmlなど)に依存できないことです。JAX-WSまたは関連ライブラリ(つまり、Axis2など)はこの種の機能を提供しますか?
何かが明確でない場合はお詫びします。ここは初めてです:)。どんなポインタでも大歓迎です。
現在、JAX-WS 2.1、Tomcat 7、サーブレット3.0を使用しています。
jaxb - WSDL のカスタマイズ: XMLGregorianCalender から java.util.Date へ
ほとんど数百の wsdl ファイルがあります。クライアント jaxb クライアント クラスを作成するたびに、Jaxb はすべての日付/時刻フィールドを XMLGregorianCalender に自動的にマップします。多くのグーグル検索の後、別のバインディング ファイルを提供することが唯一の解決策であることがわかりました。
wsdl の場所は非常に多いため、提供したくありません。そうしないと、wsdl ごとに個別のバインディング ファイルを作成する必要があります。
以下は、私が使用したバインディングファイルです。
Date 型の jaxb クラスを作成しましたが、Adapter1.java という名前のアダプターも自動的に作成しましたが、これは望ましくありません。私は独自のパッケージ構造を持っており、それから逸脱することはできません。
org.w3._2001.xmlスキーマ
このアダプターは日付を String から java.util.Date に変換しますが、コンバーターが XMLGregorianCalender から java.util.Date に変換する必要があるため、アプリケーションが失敗します。
だから、私はアダプタを自分で書いた
カスタマイズファイルを次のように変更しました:
次に、wsimport ツールを実行しましたが、失敗しました。
また、wsimport コマンドで指定されたようにカスタマイズ設定を cust.txt に保存し、DateAdapter クラスのソース ファイルも同じディレクトリに置きました。クラスはパッケージなしでした。以下は私のディレクトリ構造です。
java - jasperレポートのデータソースとしてのWebサービスの構成
誰かが私に手順を教えてもらえますか
jasperレポートでWebサービスをデータソースとして構成する
の実装について読みましたが、手順custom data source
を詳しく説明した例は見つかりませんでした。
validation - JAX-WS を使用したサーバー側のスキーマ検証
私はJAX-WSコンテナレスサービスを持っています(メソッドEndpoint.publish()
から直接公開されていますmain()
)。サービスで入力メッセージを検証したい。次の注釈を試しました:@SchemaValidation(handler=MyErrorHandler.class)
適切なクラスを実装しました。サービスを開始すると、次のようになります。
インターネット上で見つけた解決策はほとんどありません。それらはすべて、WebLogic コンテナーの使用を暗示しています。私の場合、コンテナを使用できません。埋め込みサービスが必要です。引き続きスキーマ検証を使用できますか?
java - JAX-WS クライアント: 複数のサービス間でセッション/Cookie を維持する
Netbeans を使用して、WSDL ファイルに基づいて Web サービス クライアントを自動的に作成しています。これはうまく機能しますが、私が使用している Web サービスでは、ID を証明するためにすべての Web サービスに HTTP ヘッダーでカスタム Cookie を渡す必要があります。
という名前の 1 つの Web サービスを使用Utility
して、承認を取得します。これにより、任意の Web サービスへの後続のすべての呼び出しで提供する必要がある Cookie が設定されます。
これは、Web サービスのポートの BindingProvider を に設定javax.xml.ws.session.maintain
することで実現できます。true
これは、Web サービスのメソッドへの後続の呼び出しに最適Utility
です。問題は、これがその単一の Web サービスのセッション/Cookie のみを維持することです。他にも必要です。
どうすればこれを実現できますか?という名前の別の Web サービスに Cookie を渡す必要があります。History
Utility と History の両方を拡張して同じセッション状態を共有できるスーパー Service クラスを持つことは可能ですか?
cxf - cxf の非同期 Web サービス
cxf を使用して、サーバー側からクライアント側に一方的に応答を送信する必要があります。 JAX-WS wsdl の最初のアプローチです。wsdl を Java クラスに変換するために cxf 'wsdltojava' を使用しています。
簡単にするために、私の質問は、「CXF、JAX-WS wsdlの最初のアプローチでサーバーからクライアントに応答を(クライアントからの要求なしで)送信する方法」です。
jaxb - XMLAdapterからSOAPFaultを返す方法は?
私はSOAPベースのWebサービス(JAX-WS)を開発しており、日付は特定の形式「yyyymmdd」で提供されます。私のWSDLは日付を文字列として定義していますが、期待される形式の後に要素値が続かない場合に、SOAP障害応答を返したいと思います。for要素を定義しXMLAdapter
、unmarshallメソッドで次のことを試しました。
ただし、例外は失われ、WebServiceはXMLGregorianCalendar
、マーシャリングされていない要素のnull値を問題なく取得し続けます。おそらく、これはこのフォーマット制御を実装するのに適切な場所ではありません...どんな助けもいただければ幸いです。
wsimport - xsd から生成されたクラスで @XmlElementWrapper を生成するように maven-jaxws-plugin を取得する方法は?
maven-jaxws-plugin を使用して、wsdl スキーマから Java クラスを生成しています。生成されたクラスで @XmlElementWrapper アノテーションを生成していません。この投稿から、私は jaxb-xew-plugin を使用する必要があることを理解していますが、maven-jaxws-plugin で動作させることができません。どんな助けでも大歓迎です。試した設定はこちら
maven-jaxb2-plugin とのみ統合できる場合は、Web サービスを立ち上げるのを手伝ってもらえますか? 基本的に、wsdl を指定する方法とサービス クラスを生成する方法を教えてください。(@WebService アノテーション付き)
ありがとう、
バーギャ
jaxb - リクエストで受信した JAX-WS カスタム オブジェクトが null です
以前に JAX-WS を使用したことがありますが、カスタム オブジェクトをパラメーターとして渡したことがありません。GlassFish 3.1、NetBeans 7.3 を使用しており、NetBeans JAX-WS ウィザードを使用してサービスを作成しました。私の問題は、サービスに渡されたカスタム オブジェクト (基準) がサーバー上で null として受信された場合です。int などのデフォルトの型を正常に渡すことができます。
Criteria.java
注釈など、私が見逃しているものはありますか?
送信されたメッセージは次のようになります。