- - PR -
サーバー:ASP.NET <-->クライアント:JAVA SOAP通信
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-11 00:31
はじめまして。
いつも参考にさせていただいています。 現在、サーバーにASP.NET(C#)で開発し、クライアントはJAVAで開発しSOAP通信でデータのやり取りを実現しようと考えております。 サンプルを作成しておりますが、参考になるサイトが少なく手間取っております。 サーバーとクライアントの両方をSOAP通信でやり取りすることは出来たのですが、 ASP.NET(サーバー)とJAVA(クライアント)での通信が出来ません。 まずは、参考になるサイトをご教示いただければと思います。 ■サーバー: ASP.NET(C#) VS2005 WINDOWS 2003 Server IIS ■クライアント: JAVA1.5 Linux RedHat よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2006-08-11 02:41
ASP.NET側(サーバ側)がWebServiceとして公開されているのであれば、
普通のWebServiceと同じ(WSDLから各種ファイルを作成する)で良いはずですが… この辺の日本語の文献は少ないですね…かくいう私もほとんど見つけられてません。 英語で(しかも本)で良いのなら『Java EE and .NET Interoperability』という のがあります。J2EE⇔.NETを細かく書かれています。方法ごとに章が設けられている ので分かり易いと思います。 #誤ってタッチパッドに手が当たり、途中で送信してしまった… [ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2006-08-11 02:49 ] [ メッセージ編集済み 編集者: がんふぃーるど 編集日時 2006-08-11 02:52 ] | ||||||||||||
|
投稿日時: 2006-08-11 08:45
クライアントはapache Axisでしょうか?
「通信ができない」時のメッセージなどを具体的に書くと 何かわかるかもしれません。 http://ws.apache.org/axis/java/client-side-axis.html | ||||||||||||
|
投稿日時: 2006-08-11 09:30
がんふぃーるどさん、Java僧さん
返信ありがとうございました。
はい。 apache Axisを使っております。 [クライアント側のソース] try{ String endpoint = "http://192.168.1.56/soap_sample/HelloWorld.asmx"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("http://tempuri.org/HelloWorld/","SayHelloWorld")); String ret = (String) call.invoke( new Object[0] ); System.out.println(ret); }catch(Exception ex){ ex.printStackTrace(); } ---------------------------------------------------- 通信できないときのエラーメッセージは以下のとおりです。 AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: サーバーは HTTP ヘッダー SOAPAction の値を認識しませんでした : ''。 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:サーバーは HTTP ヘッダー SOAPAction の値を認識しませんでした : ''。 at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at org.apache.xerces.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:585) at org.apache.xerces.impl.XMLNamespaceBinder.handleEndElement(XMLNamespaceBinder.java:898) at org.apache.xerces.impl.XMLNamespaceBinder.endElement(XMLNamespaceBinder.java:644) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1008) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1469) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525) at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581) at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at HelloWorldSOAPClient.main(HelloWorldSOAPClient.java:60) {http://xml.apache.org/axis/}hostname:(Server-name) ---------------------------------------------------------- [サーバー側のソース] http://ja.gotdotnet.com/quickstart/aspplus/doc/webservicesintro.aspx を参考にしてソースを作成し 「Web参照の追加」でURLに「http://localhost/soap_sample/HelloWorld.asmx?WSDL」を 入力し「参照の追加」をしております。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2006-08-11 13:01
.Netのサーバ側実装に詳しくないので、
#なんとなくこれはクライアント側の手順のような気がします・・・ クライアントはAxisのWSDL2Javaでプロクシコードを生成してますか? 「ぽすたん」(http://www.postan.jp/postanws.htm)のサービスが、 .Netのサーバ実装のようなので、これを使って 自動生成されたコードからサービスを使う一番簡単な Javaコードを貼っておきます。
(参考) WSDL2JavaをはじめとしてAxisのユーティリティはAntのタスクも 定義されているのでこれを使うと楽できます。
|
1