問題タブ [jbossws]
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 - jmxremote が有効になっている JBoss 4.2.2 上の JBossWS の NPE
リモート監視用に JBoss 4.2.2 と JConsole をセットアップしようとしています。これを行うために Web で見つけた多くのハウツーに従って、run.conf で次のオプションを設定して jmxremote を有効にする必要があります。(他の2つのオプションが認証を無効にしていることに気づきました)
次の例外が発生します。
私のアプリケーションは、このバグによるとJWSを使用しています:
https://jira.jboss.org/jira/browse/JBWS-1943
この回避策を提案します:
私はそれを試しましたが、アプリケーションが必要とするいくつかのスケジュールされたジョブに対して Schedulable を実装するクラスのみを含む sar ファイルを耳にデプロイしようとすると、次の例外がスローされます。
ここからどこへ行くべきかについての提案はありますか?
編集:
次のバリエーションも試しました。
JDK 1.6.0_01-b06 を使用しています
java - java.util.List はインターフェースであり、JAXB はインターフェースを処理できません
アプリケーションをデプロイしようとすると、次の例外が発生したようです。
戻り値の型を List から List<List<RelationCanonical>> に変更するまで、私のコードはうまく機能しました
部分的な Web サービスは次のとおりです。
@SOAPBinding を削除してデフォルトを試してみましたが、同じ結果が発生します。どんな助けにも感謝します
アップデート
特筆したいことがあります。すべての List を ArrayList に変更してから、コンパイルしました。コンパイル済みで動作しないと言う理由は、動作がおかしいからです。タイプ RelationServiceStub.ArrayList のオブジェクトを取得しますが、オブジェクトに取得メソッドがないか、リストとして動作しません。また、リストにキャストしようとしましたが、うまくいきませんでした。
これは、Axis 2 と wsdl2java を使用した後であることに注意してください。そうです、今はコンパイルできますが、データを取得する方法がわかりません。
security - JBossWS でユーザー名トークンを使用する場合、メモリからパスワードを消去するにはどうすればよいですか?
支払いサービス アプリケーションに JBoss Web Services を使用しています。ある時点で、支払いサービス プロバイダーに対してリモート SOAP 呼び出しを行う必要があり、ユーザー名トークンで認証する必要があります。
JBossWS でこれを行う方法を私が知っている唯一の方法は次のとおりです。
しかし、ここでの問題は、「changeme」パスワードが String オブジェクトとしてメモリ内にあり、ガベージ コレクションがいつ行われるかを制御できないことです。攻撃者がこの時点でメモリをダンプすると、資格情報を見つけることができます。
JBossWS で安全な SOAP 呼び出しを行う別の方法はありますか? パスワードがメモリに保持される期間を制御できますか?
web-services - 非 EJB ベースの WebService に EntityManager を挿入する方法は?
見出しがすべてを物語っています: 私はシンプルな WebService を持っています
もちろん、WebService も web.xml で定義されており、WSDL の呼び出しは正常に機能し、クライアントは webmeethods などを呼び出すことができます。
ご覧のとおり、EntityManager と UserTransaction を注入する必要があるため、さらに DAO を作成する必要があります。ただし、どちらも常に null です。
WebService は EJB ベースではありません。これらのオブジェクトを取得する方法はありますか?
コンテナはJBoss 5.0GA
java - WebService/SLSB は JBossWS のシングルトンですか?
クラスで JAX-WS "WebService" アノテーションを使用して、その "WebMethod" を Web サービスとして公開しています。このクラスは、「/MyService」への呼び出しを処理するサーブレット クラスとして示されます。
基本的にはサーブレットであるため、このクラスのインスタンスは 1 回だけ作成され、基本的にはシングルトンであることが期待されます。このクラスのコンストラクターには、メンバー変数に割り当てるための EntityManagerFactory を作成するコードがあります。私が見ているのは、Web サービスへのすべてのクライアント要求に対してコンストラクターが呼び出されていることです。これは良くない。
ここで何が起こっているか知っている人はいますか?誰かが私が尋ねようとしていることを理解していますか? :)
ありがとう。
java - WSDL を追加する方法プログラムによる制限?
私が働いている場所では、Web サービスを「ボトムアップ」 (コード ファースト) で構築するように努めるべきであるというポリシーが定められています。
これを行う場合、XSD WSDL 要素内に制限を追加するにはどうすればよいですか? たとえば、次のようになります。<types
>
私のWSDLの出力は次のとおりです。
「ゲスト」文字列に制限minLength
と制限の両方を追加したいと思います。maxLength
WSDL を直接編集するのではなく、コードを介してこれを行うことは可能ですか?
カスタムクラスを使用してフィールドに注釈を付け@XmlElement
たり@XmlAttribute
、いくつかのカスタマイズ(名前、必須など)を取得したりできることは承知していますが、文字列(長さなど)のようなものに固有のものは何もありません。これらの注釈を変更/拡張して、長さやパターンなどのサポートを追加することは可能ですか?
ありがとう。
java - wsimport 複数の生成された wsdl
注釈付き POJO から生成された 3 つの Web サービスを提供するために jbossws (jax-ws を使用) を使用しています。これら 3 つの Web サービスは、いくつかのデータ クラスを共有し、共通のメソッドも備えています ( ping
)。それらはすべて同じ Java パッケージ内にあります ( namespace
)
3 つの WSDL ファイルはjbossws
、デプロイ時に自動的に生成されます。
ここで、wsimport を使用してクライアント コードを生成したいと考えています。
WSDL ファイルを 1 つずつインポートすると、いくつかの癖がありますが (ObjectFactory.java
上書きされ、@XmlSeeAlso
すべてのサブクラスがリストされません) 、これは何とか機能します。
3 つの WSDL ファイルを一度にインポートすると、ツールは定義の重複 (例: [ERROR] 'ping' is already defined
) について警告し始め、何も生成しません。
名前空間を変更しようとしましたが、それによっていくつかのパッケージが発生し、クライアント側でいくつかのクラスが重複する可能性があります。
3 つの WSDL ファイルのコードを生成するにはどうすればよいですか?コードの重複がなく、@XmlSeeAlso
注釈が正しく、できれば正しい.ObjectFactory
web-services - JBoss での Web サービス メッセージのダウンロード中に、添付ファイルをメモリではなく一時ファイルに保持する方法
JBoss 4.2.3 および 5.1 で JBoss WS Native Stack を使用すると、次の問題が発生します。Web サービスは大量の大きな添付ファイルを受信しています。サーバーがこれらの添付ファイルを受信すると、メッセージ全体が転送されて解析されるまで、添付ファイルがメモリに保存されます。
その結果、(クライアント数が多いため)すぐにメモリ不足になります。
JBossWS がメモリではなく一時ファイルに添付ファイルを保存することを希望します。
添付ファイルが RAM ではなくファイルに保持されるしきい値を設定する JBoss のオプションはありますか? Axis 2 にはそのようなオプションがあります ( http://ws.apache.org/axis2/1_1_1/mtom-guide.htmlの最後の章を参照してください) が、JBossWS で同様のものを見つけることができませんでした。JBoss の Apache CXF または Metro Web サービスの実装にそのようなオプションはありますか?
java - WebFault で注釈が付けられた wsimport によって生成された例外を拡張するにはどうすればよいですか?
既存の WSDL から Java で Web サービスを構築しています。wsimport
ツールは、サービスのスキーマ内の要素にバインドされたすべての Java クラスを生成しました。特に、フォルト宣言は次のクラスを生成します。
ここで、このクラスを拡張したいので、さらに動作を追加できます。
アプリケーションから のインスタンスをスローするとMyServiceFault
、これらのエラーが SOAP 応答で XML に適切にシリアル化されることが期待されます。しかし、代わりに、次のようなものが得られます。
つまり、 faultInfo 要素が完全に欠落しています。私の SOAP スタックはMyServiceFault
、サービスの障害を表す例外としてではなく、他の例外として扱います。
@WebFault
アノテーションが に継承されていないためだと最初は思いMyServiceFault
ましたが、このアノテーションを明示的に追加した後に再試行しましたが、成功しませんでした。
私がここで間違っていることは何か分かりますか?
java - JAX WS Dispatch API を使用してユーザー定義の例外を処理することは可能ですか?
次のコード スニペットを使用して、動的な Web サービス呼び出しを実行しています。
サービスにユーザー定義の例外を追加する場合を除いて、呼び出しは完全に機能します (基本的な UserException は java.lang.Exception を拡張します)。
最初に私は得る:
javax.xml.bind.UnmarshalException: 予期しない要素 (uri:" http://schemas.xmlsoap.org/soap/envelope/ "、local:"Fault")。期待される要素は <{ http://my.namespace/ }myMethod>,<{ http://my.namespace/ }myResponse> です
次に、UserException_Exception JAX-WS で生成された型を JAXB コンテキストに追加し、次を取得します。
原因: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 カウントの IllegalAnnotationExceptions java.lang.StackTraceElement には、引数のないデフォルト コンストラクタがありません。この問題は、次の場所に関連しています: java.lang.StackTraceElement の public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace() の java.lang.Throwable の java.lang.Exception
私が見つけた唯一の解決策は次のとおりです。
- Soap メッセージを直接ディスパッチし、Soap 障害を直接処理します (これは、Jboss JAX-WS 実装がサービス インターフェイスを使用して標準の JAX-WS 呼び出しを実行する方法です)。これは私にとって利用可能な解決策ではありません。高レベルの実装を使用したいです (Soap メッセージに近づくほど、コードの動的性が低下します)
- @XmlTransient として java.lang.Exception に注釈を付けるために、JAXBRIContext.ANNOTATION_READER の使用は実装固有であり、私にとっては利用可能な解決策ではありません
ユーザー定義の例外を含むサービスは、JAX-WS で生成された標準クライアント スタブを使用し、Soap UI などのツールを使用して適切に実行されます。JAXB コンテキストにユーザー定義の例外アーティファクトがない場合、および JAXB コンテキストに JAXB と互換性のないアーティファクトを追加する場合の呼び出し中に、メッセージの逆シリアル化で問題が発生します。
Jboss 4.2.3.GA内でJboss WS Webサービススタックを使用しています
この問題に対するエレガントな解決策は歓迎されます!