問題タブ [java-metro-framework]
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 - 安全な METRO 2.1 Web サービスを使用する .NET クライアントの開発
セキュリティで保護された METRO 2.1 Web サービスがあり、それを使用できる .NET (3.5) クライアントを開発したいと考えています。WS が保護されていない場合は既に成功していますが、取得したら
セキュリティ メカニズムはUsername Authentication with Symmetric Key
、Development Defaults
.NET でセキュリティを設定するにはどうすればよいですか? METRO ガイドを読んでいますが、サンプルへのリンクが壊れているだけで、ガイドを読み進めることができませんでした。でプロキシ クラスの生成に成功しましたがsvcutil
、その使用方法がわかりません。
svcutil 警告:
警告 1 カスタム ツールの警告: エンドポイントのセキュリティ ポリシーがインポートされました。セキュリティ ポリシーには、Windows Communication Foundation 構成では表現できない要件が含まれています。生成された構成ファイルで必要な SecurityBindingElement パラメーターに関するコメントを探します。コードを使用して正しいバインド要素を作成します。構成ファイルにあるバインド構成は安全ではありません。
警告 2 カスタム ツールの警告: wsam:Addressing 要素には wsp:Policy 子要素が必要ですが、子要素がありません。
編集
私はこれを解決することに本当に近づいています(私は思う)。デフォルトの GlassFish 証明書をkeytool.exe
次のようにエクスポートしました。
server.cer
クライアント側で証明書を使用します:
質問MessageSecurityException
エンドポイントの予想される DNS ID は ですが、エンドポイントには があるため、この結果は にlocalhost
なりますxwssecurityserver
。localhost
/xwssecurityserver
手動で設定できますか?
どんな助けでも大歓迎です!前もって感謝します、ダニエル
java - デプロイ後にJMXMBeanが表示されない
環境NetBeans6.9.1、GlassFish 3.1、METRO 2.1
利用可能なWebサービスのリストを作成したいので、JMXMBeanServerにクエリを実行してい*:type=WSEndpoint,*
ます。問題は、デプロイ後のMbeanが56個までしかなく、WSEndpoint
Beanが登録されていないことです。JMXtermに接続すると、MBeanの数が最大380に跳ね上がり、すべてのWSEndpoint
Beanが表示されます。JConsoleからは何も表示されませんfolder
が、JMXtermを実行した後は表示されます。
Webサービスを呼び出しても、MBeanは未登録のままです。METROモニタリングはデフォルトで有効になっていますが、そのままにしておきました。デプロイ後、コンソールメッセージINFO: Metro monitoring rootname successfully set to: amx:pp=/mon/server-mon[server],type=WSEndpoint,name=...
が表示されます。
すべてのMBeanが表示されるようにJMXtermは何をしますか?それはへのメソッド呼び出しを行いMBeanServer
ますか?WSEndpoint
デプロイ直後にBeanにアクセスできるようにするための解決策はありますか?
hibernate - 同じデータベースを使用する同じサーバーに存在する Web サービス間のアトミック トランザクション
私たちのアーキテクチャは、JAX-WS 仕様で開発された Web サービスで構成されています。
メトロ。これらのサービスは、個別の war として単一の Glass Fish アプリ サーバーにデプロイされます。
ファイル。すべての Web サービスは内部で単一のデータベースを使用します。データアクセス層は Hibernate を使用して実装され、Spring はサービス内のトランザクションの実装に使用されます。複数の Web サービスにまたがるトランザクションを実行したい場合、どのようなアプローチが可能でしょうか?
- JTA を使用する必要がありますか、それとも回避できますか?
- Metro でサポートされている WS-AtomicTransaction 仕様を使用する必要がありますか?
java - JavaMetroWS用のカスタムチューブを作成する方法
独自のカスタムチューブを作成してJavaMetroWSスタックに入れたいのですが、今のところ運がありません。特にこの部分について、Metroの完全なドキュメントは見つかりませんでした(公式サイトのMetroドキュメントはまったく役に立ちません)。
これまでにわかったことは、を実装するTubeを作成する必要がAbstractFilterTubeImpl
あり、次に、、TubelineAssembler
およびファクトリ(TubelineAssemblerFactory
)が必要であるということです。ただし、これらのクラスを作成した後は、それらをどう処理するか、WSスタックにプラグインする方法がわかりません。私はたくさんのブログやサイトを読んだことがありますが、そのうちのいくつかはTubeFactoryを使用する古いメソッドを使用しています(ただし、このクラスはもう存在していません)。また、現時点で何をすべきかを明確に説明しているものはありません。
META-INF/services
それらのいくつかは、私が構成ファイルを作成しなければならないフォルダーについて言及していますが、このフォルダーがどこにあるべきか、構成ファイルが正確に何を含まなければならないか(これに関する反対のブログ投稿が見つかりました)、そしてそれがどのようにあるのかわかりません認識されます。Glassfish3でNetbeansIDE6.9.1を使用しています。
どんな助けでも大歓迎です。ありがとう!
java - Web サービスを呼び出さずに SOAP メッセージを取得する
JAX-WS 仕様の Glassfish Metro 実装を使用すると、実際に操作を呼び出すことなく、特定の操作の SOAP 要求メッセージを生成できます。WSDL のみに基づいてサンプル SOAP メッセージを生成する SOAPUI 機能のようなもので、操作用のパラメーターを提供して生成したいと考えています。
ありがとう。
web-services - Weblogic Webservices Stack の代わりに Metro を使用する
weblogic.jar に含まれるデフォルトの Weblogic Web サービス スタックの代わりに Metro Web サービスを使用しようとしています。
問題は、WebLogic が独自の Metro スタックを使用する前に、Metro スタックを使用しようとしたときに発生します。
これまでに行った手順は、プロジェクトで webservices-rt.jar を参照することです。これまでのところ、ear ファイルのデプロイ中にこのエラーが発生しています....
原因: java.lang.LinkageError: ローダー制約違反: フィールド「DATETIME」を解決するとき、参照クラス、javax/xml/datatype/DatatypeConstants のクラス ローダー (weblogic/utils/classloaders/ChangeAwareClassLoader のインスタンス)、およびクラス ローダーフィールドの解決された型、javax/xml/namespace/QName の (のインスタンス) には、その型の異なる Class オブジェクトがあります
更新:
最新のエラー: 「クラス javax.xml.namespace.QName には @WebService も @WebServiceProvider もありません」 QName オブジェクトで @Webservice を探しているのは奇妙です:
- Application-Weblogic.xml の内容
<wls:prefer-application-packages>
<wls:package-name>com.ctc.</wls:package-name>
<wls:package-name>com.sun.xml.</wls:package-name>
<wls:package-name>com.sun.istack.</wls:package-name>
<wls:package-name>com.sun.msv.datatype.</wls:package-name>
<wls:package-name>com.sun.msv.driver.</wls:package-name>
<wls:package-name>com.sun.msv.grammar.</wls:package-name>
<wls:package-name>com.sun.msv.reader.</wls:package-name>
<wls:package-name>com.sun.msv.relaxns.</wls:package-name>
<wls:package-name>com.sun.msv.scanner.</wls:package-name>
<wls:package-name>com.sun.msv.util.</wls:package-name>
<wls:package-name>com.sun.msv.verifier.</wls:package-name>
<wls:package-name>com.sun.msv.writer.</wls:package-name>
<wls:package-name>com.sun.org.apache.xml.internal.</wls:package-name>
<wls:package-name>com.sun.wsit.</wls:package-name>
<wls:package-name>javax.jws.</wls:package-name>
<wls:package-name>javax.xml.bind.</wls:package-name>
<wls:package-name>javax.xml.soap.</wls:package-name>
<wls:package-name>javax.xml.stream.</wls:package-name>
<wls:package-name>javax.xml.ws.</wls:package-name>
<wls:package-name>javax.xml.activation.</wls:package-name>
<wls:package-name>javax.xml.annotation.</wls:package-name>
<wls:package-name>javax.xml.mail.</wls:package-name>
<wls:package-name>javax.xml.security.</wls:package-name>
<wls:package-name>javax.xml.registry.</wls:package-name>
<wls:package-name>javax.xml.rpc.</wls:package-name>
<wls:package-name>javax.xml.crypto.</wls:package-name>
<wls:package-name>javanet.staxutils.</wls:package-name>
<wls:package-name>jp.gr.xml.</wls:package-name>
<wls:package-name>org.codehaus.stax2.</wls:package-name>
<wls:package-name>org.glassfish.gmbal.</wls:package-name>
<wls:package-name>org.iso_relax.</wls:package-name>
<wls:package-name>org.jcp.xml.dsig.</wls:package-name>
<wls:package-name>org.jvnet.</wls:package-name>
<wls:package-name>org.relaxng.</wls:package-name>
<wls:package-name>antlr.</wls:package-name>
<wls:package-name>org.apache.commons.lang.</wls:package-name>
</wls:prefer-application-packages>
java - Spring の @Transactional で @Resource WebServiceContext インジェクションを使用する方法
多かれ少なかれ次のように見える Metro jax-ws Web サービスがあります。
はWebServiceContext
常に null です。ただし、削除@Transactional
すると WebServiceContext が注入されます。
誰もが回避策を知っていますか?
ありがとう。
java - JAVAX-WS エンドポイント バインディングを SOAP 1.2 に変更するにはどうすればよいですか?
Endpoint.publish()
Visual Studio で使用するために使用するテスト WS 実装を公開しています。ドキュメントによると、デフォルトの SOAP バインディングは1.1
であり、バインディングを変更することは可能ですが、バインディングを に変更する方法が具体的にわかりません1.2
。
どんな助けでも大歓迎です!
java - JAXBでドライな状態を維持
次の形式でXMLにシリアル化する必要のあるJavaクラスをいくつか開発しています。
最初は、Foo.java
次のようになりました。
Bar.java
何がどのように見えるかを推測するのにそれほど想像力は必要ありませんBaz.java
。これらは、(この例では)、、、およびの非常に単純なラッパーint
クラスString
ですboolean
。この時点まで、すべてがハンキーなドーリーです。の第9ラウンドを書いた後
「ねえ、私はこれをどのように解決できるか知っています。必要なのは1レベルの抽象化だけです!」紹介Wrapper<T>
:
さて、実装するためFoo
に私がする必要があるのは、拡張しWrapper
、必要なファクトリメソッドを実装することだけです。
の宣言を追加し@XmlSeeAlso({... Foo.class ...})
ます。Wrapper
- プロ:これははるかに良いです。
- 短所:JAXBはこれらのオブジェクトをシリアル化しません。
JAXBの腸の奥深くに投げられたために呼び出されJAXBContext.getInstance(Wrapper.class)
たりJAXBContext.getInstance(Foo.class)
失敗したりするもの:NullPointerException
JAXB実装をMetroからMOXyに切り替えようとしましたが(実装が変更されたことを確認しました)、同様のNPEがMOXyでスローされます。
ボイラープレートを最小限に抑え、 DRYを維持しながら、必要なXMLを生成する方法はありますか?
java - 注釈を介してメトロに ws-security を実装する方法はありますか?
セキュリティ (メッセージの暗号化とユーザーの認証) を有効にするために多くの wsit ファイルを作成したくないし、netbeans を使用して Metro プラグインを使用したくないので、簡単な方法があればお聞きしたいです。注釈を介して ws-security を実装しますか? または、そのようなwsitファイルを作成するために、実際にはあまり役に立たないsoap ui以外のEclipseプラグインはありますか?
前もって感謝します。