問題タブ [axis2]
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 - 自動生成されたコードを配置するのに適した場所は?
ほとんどが Axis2 スタブ、スケルトンなどである自動生成されたクラスがたくさんあります。一部の複雑な wsdl では、Axis2 は Java Bean、スタブなどの TON を生成します。また、自動生成が使用される他のケースもあると確信しています。
今のところ、これらをコード ベースの他のファースト クラス メンバーとして扱い、同じパッケージに格納します。
ただし、リファクタリングやクリーンアップなどを行うと、これらの自動生成されたクラスからの警告を取り除くのが難しくなります。たとえば、Java1.5ジェネリックを使用するためにコードをクリーンアップしようとしている場合、これらの問題のあるクラスのいくつが私たちのものであるか、自動生成されているかを知る良い方法はありません.
これらの自動生成されたパーツを別のパッケージに分離する必要がありますか? そのようなアーティファクトをリポジトリにどのように保存しますか?
編集:以下のかなりの数の回答で「ビルドプロセス中に生成」が表示されます。そうすることの利点はわかりますが、リポジトリのチェックインから逃れる方法がよくわかりません。
私のコードには、これらのクラスのいくつかに対するコンパイル時の依存関係があり、私にとって、開発中のビルドは Eclipse の「ctrl-s」です。Ant スクリプトを使用して、コンパイルを生成し、テストを実行し、成果物を生成します。
java - Visual Studio 2008 で Axis2 Web サービスを使用する
Visual Studio で Axis2 Web サービスを適切に動作させるのに少し問題があります。ショーストッパーではありませんが、問題は非常に奇妙です。どちらかといえば面倒なので、これを回避する方法を本当に感謝しています。
問題は、C# コードで Web サービスを使用する場合、パラメーターまたは戻り値がネイティブ データ型にないことです。したがって、単に呼び出すことができる代わりに、たとえば次のようにします。
私は書かなければならない
おわかりのように、これはすぐに非常に煩わしくなります。奇妙なことに、Web サービスへの Web 参照を作成すると、すべてのデータ型とパラメーターがサービス検出ページに正しく表示されます。Web サービスの WSDL ファイルを変更して、Visual Studio を混乱させる可能性のあるものをすべて削除しようとしましたが、これまでのところ、これを正常に機能させることができませんでした。
これは、Web サービス自体の問題ではなく、逆シリアル化プロセスにおける Visual Studio や .Net の問題であることをどこかで読みました。Web サービスは NetBeans 内で正しく使用できるため、これは本当かもしれないと考えています。
Web サービスは Java で記述され、axis2/Tomcat サーバーでホストされますが、クライアント ソフトウェアは C# .Net 2.0 で記述されます。
とにかく - 誰もこれを経験したことがありますか? デシリアライゼーションの問題について再度読んだページを見つけることができませんでした。
c# - SOAPリクエストが正しく送信された場合でも、Axis2は常にnullパラメータを受け取りますか?
Axis2 / Tomcat / Apache サーバーでホストされている、Java で記述された Web サービスがあります。クライアント ソフトウェアは C# で記述されています。
私は java2wsdl が wsdl ファイルを生成する方法でいくつかの厄介な問題を抱えていました。初期の段階で頭痛の種になりましたが、この問題で完全に困惑しています。
基本的に何が起こっているかというと、クライアントは Web サービスに問題がないことを確認し、完全に有効な (または少なくとも、私には有効に見える) パラメータ付きの SOAP リクエストを送信します。
サーバーでは、正しい Web メソッドが実行されますが、パラメーターはすべて null です。私の Web サービスはこれを検出し、クライアントが受信して完全に理解できる応答を作成します。
私の推測では、Axis2 はどこかで顔をしかめていると思いますが、java2wsdl で頭痛の種を抱えていたことを考えると、必要なのは wsdl ファイルを変更することだけかもしれません。
wsdl ファイルは次のとおりです。
リクエストとレスポンスの例を次に示します。
リクエスト:
応答
何がうまくいかないのか誰にも分かりませんか?
応答のエラー メッセージは、要求の serialcode パラメータが空または null の場合にのみ送信できるため、Axis2 がパラメータを読み取る方法に問題があると推測されます。
================================================== ==========
これを修正する方法:
これは、私がこの問題をどのように解決したかについての詳細情報を求める Aldo の要求に応えたものです。
この修正が機能する理由はわかりません。おそらく、Axis2 のバグか何かである可能性があります。いずれにせよ、問題の原因が自分のセットアップによるものなのか、それとも他の何かによるものなのかはわからないため、YMMV です。私が言えるのは、次のことを行うことで、すべてが機能し始めたということだけです。
とにかく、自動生成された WSDL ファイルは、Web 要求とそのパラメーターの複雑な要素の型を作成します。これは、パラメーターが文字列や整数などの単純な型だけであっても同様です。私が行ったことは、パラメーターの正しい単純型タグ (「serialcode」や「date-string」など) を作成してから、WSDL ファイル内の他の場所にある複合型への参照を単純型への参照に置き換えることでした。
以下に例を示します。
自動生成された WSDL メソッドとパラメーター
基本的に、自動生成されたパラメーターを破棄して単純型を作成する必要があります。次に、「request」タグを「element」ではなく「type」を使用するように変更し、新しく作成した単純型を使用します。
変更/修正された WSDL
明らかに、実際のパラメーターが何であるかによって異なります。私の場合、それらはすべて文字列や整数などの標準的な単純型です。複数のパラメーターを渡す場合は、自動生成された要素を保持して、要素が「xs:string」またはその性質の型属性を単に含めるのではなく、単純な型を参照するようにする必要があるかもしれません。 .
申し訳ありませんが、これについてこれ以上明確にすることはできませんが、前に述べたように、なぜこれが機能するのかわかりません。
最後に 1 つ: リクエスト タグの「要素」参照属性を削除すると、Axis2 ログでパーサーの警告が表示される場合があります。これまでのところ、これによって問題が発生することはありませんが、問題が発生した場合に備えて注意が必要です。
client-server - 異なるクライアントを持つサーバー上の Axis2
サーバーで axis2 を実行し、クライアントが SOAP メッセージを送信して軸を使用しないことは可能ですか? これはインアウトプロセスを使用します。もしそうなら、これを行うことで何か問題がありましたか?
java - SOAP を介して Red5 の SharedObjects を公開する方法
編集:明らかに、私の最初の質問は本当に理解しにくいものでした。答えが役立つことを願っています:)
Red5 サーバーに Axis2 をインストールしようとしましたが、すべてうまくいきました。Red5 の RTMPClient を使用してカスタム Web サービスから Red5 アプリのプロパティにアクセスし、Axis2 を介してそれらを公開しました。
問題は、私が2レベルのサーバーを持っていて、Webサービスから共有オブジェクトなどに直接アクセスできないことです...私がやりたいことは、いくつかのRed5アプリ機能にアクセスできるようにすることですSOAP サービス クラスを介して直接。
自分で SOAP サーバーを作成する必要があると思います (おそらく、Axis の SimpleHTTPServer または SimpleAxis2Server を使用しますか??)
何か案は??
私は自分自身を説明したいと思います...そして事前に感謝します
asp.net - .NET Web サービスの Axis2 要求ヘッダーをオーバーライドする方法は?
.NET 2.0 (もちろん IIS 上) で実装されたサード パーティの Web サービスを使用する必要があります。
Java クライアントを作成する必要があります。SOAP スタブを生成するために wsdl2java を使用しています。
元の Apache Axis プロジェクトは現在保守されていないように見え、サービスからのいくつかの応答を解析する際に問題が発生したため、クライアントを Axis2 の最新 (1.5) バージョンを使用するように変換しました。現在、.NET サービスは私の要求を認識しません。
「チャンク」をオフにすることができました (「スタブ」は wsdl2java によって生成された MumbleStub 型の変数であり、ここではコードの複数行を 1 つの恐ろしい行として示しています)。
.. したがって、少なくともサービスは私の要求を要求として認識しますが、悪いものではあります: " HTTP/1.1 400 Bad Request
" が現在の応答です (WSDL へのリンクを提供する「イントロ / 概要」ページとは対照的です)。
Axis ("1") リクエストの Content-TYPE ヘッダー (text/xml と application/soap-xml) が異なることに気付きました。実際に問題がある場合、このリクエスト ヘッダーを変更する方法を考えています。
代わりに、他の誰かがこの問題を抱えていますか? 問題は本当に (ここでは表示できません。ブログ エンジンへの "要素注入" のように見えます) ... xml バージョン - "1.0" ... Axis2 がリクエストの先頭に追加した "XML メタ イントロ タグ" ですか?
確かにWS-デススター。
xsd - Axis2 WSDL2Java を実行している SchemaParsingConfig.setFeature() での NullPointerException
日常業務の過程で、次の記事の WSDL と XSD を使用しようとしています。
http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Javaコードを生成するためのテンプレートとして。私の望みは、生成された Java コードを使用して、手動で作成された WSDL とスキーマが妥当であることを何らかの方法で検証することです。問題は、私が実行したときです(次のようなもの):
私はこの例外を受け取ります:
現在のディレクトリにあるだけのファイルからコードを生成することはできませんか? (私は以前にこれを行ったことがありますが、それは外部サポート スキーマ ファイルを持たない WSDL 1.1 ファイルでした)
この例の WSDL に既知の問題はありますか?
Axis2 (バージョン 1.5) WSDL2Java にバグはありますか? (明らかに、null ポインター/参照がスローアップする代わりに、欠落しているデータに関するエラー メッセージが表示されると便利です)
java - 接続プールが正しく機能しているかどうかをテストするにはどうすればよいですか?
Apache Axis 2 を使用して SOAP クライアントを実装しています。SOAP クライアントは大量のリクエストを処理する必要があるため、接続プールを使用しています。
そのためには、WSDL ファイルから生成されたスタブのいくつかのトランスポート層構成を設定する必要がありました。
私のクライアントは問題なく動作しているようです。ただし、接続プールが正しく機能しているかどうかをテストする方法を知りたいです (つまり、作成された接続は、IDLE_CONNECTION_TIMEOUT 定数で定義された時間後にのみ破棄されます)。何か案は?
java - 大きなテキスト要素を含む xml ファイルを非整列化するときの Axis2 / JAX-WS エラー
私は完全に立ち往生しており、あなたの助けが必要です... SOAP メッセージ内でバイナリ ファイル (base64 でエンコードされた jpg 画像) を送信するサービスのために、jaxb 2.x を使用して Web サービス スタブを作成しました。すべてが正常に機能し、画像を受信して表示することができましたが、Eclipse RCP アプリを製品にエクスポートしようとすると、すぐに LinkageErrors (いつものように javax.xml.namespace.QName など) が発生しました。
その問題を解決して axis2 を「再バンドル」すると、すべて正常に動作するようになりました - スタブ内のバイナリ ファイル部分の解析を除いて、例外 (予期しない要素) が発生します。
よく見ると、axis2-jaxb で生成されたスタブで使用されているリーダー (OMStAXWrapper) が base64 テキスト全体を読み取るのではなく、最初の 10000 バイトのみを読み取ることが明らかになりました。次に、要素の正しい末尾が見つからず、例外がスローされます。
前に述べたように、これは最初は発生しなかったので、単なるパラメーターまたはオプションであることを願っています。すべてのヘルプまたはヒントに感謝します!
編集 JAXB ではなく、JAXWS と wsimport を使用して wsdl ファイルのスタブを作成しました...
java - Java Web サービス クライアント:
axis2を使用してTomcatで公開された操作を実行する必要があるWebサービスクライアントを開発しています。クライアントには、必要なすべての wsdl ファイルがあります。クライアントは実行時に wsdl を検出し (これは既に行われています)、固定された順序で実行する必要があるため、netbeans または eclipse でそれらを静的にインポートすることはできません...どうすればよいですか? 私のプログラムはこれらの wsdl ファイルを取得できますが、それらをどう処理すればよいかわかりません...何を使用すればよいですか: jax-ws? jax-rpc?? ガイドなどへのリンクを教えてもらえますか??
前もって感謝します