Javaを使用してプログラムによってエンドポイントにSOAPリクエストを作成しようとしています。私はJavaとWebサービスには比較的新しいので、私がここで間違っているのか分かりません。JavaプログラムによるSOAP Webサービスの要求問題
また、私はSOAPメッセージを印刷し、それを郵便配達員のようなツールに貼り付けて、エンドポイントを入力すると、投稿が成功します。だから、私の要求で何かがここでは正しくないと思う。
2016年10月24日午前一時56分57秒PMのcom.sun.xml.internal:私はこのコードを実行したときに、私はこのエラーを取得する
System.out.println("hey now!!!!"); try { SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance(); SOAPConnection connection = scf.createConnection(); MessageFactory mf = MessageFactory.newInstance(); SOAPMessage message = mf.createMessage(); SOAPBody body = message.getSOAPBody(); SOAPHeader header = message.getSOAPHeader(); SOAPElement getOpenPOs = body.addChildElement("GetOpenPOs", "", "https://www.autocrib.net"); SOAPElement U = getOpenPOs.addChildElement("U"); U.addTextNode("u"); SOAPElement P = getOpenPOs.addChildElement("P"); P.addTextNode("p"); SOAPElement N = getOpenPOs.addChildElement("N"); N.addTextNode("n"); SOAPElement Processed = getOpenPOs.addChildElement("Processed"); Processed.addTextNode("false"); SOAPElement StationEnd = getOpenPOs.addChildElement("StationEnd"); StationEnd.addTextNode(""); SOAPPart sp = message.getSOAPPart(); SOAPEnvelope envelope = sp.getEnvelope(); //MimeHeaders headers = message.getMimeHeaders(); //header.setHeader("Content-Type", "text/xml"); //message.getMimeHeaders().addHeader("SOAPAction", "GetOpenPOs"); message.getMimeHeaders().addHeader("Content-Type", "text/xml"); header.setAttribute("Content-Type", "text/xml"); message.saveChanges(); System.out.println("Envelope Body"); message.writeTo(System.out); System.out.println(); SOAPMessage reply = connection.call(message, "https://www24.autocrib.net/WebServices/AutoCribWS.asmx"); //String reply2 = connection.call(message, "https://www24.autocrib.net/WebServices/AutoCribWS.asmx").toString(); //sp = reply.getSOAPPart(); //envelope = sp.getEnvelope(); //body = envelope.getBody(); //System.out.println(body.toString()); System.out.println("Done!!!!!!!!!!!!!!!!!!!"); } catch (Throwable t) { System.out.println("Something went wrong!!! " + t.toString()); } }
:
は、ここに私のコードです。 messaging.saaj.soap.MessageImpl identifyContentType 重大度:SAAJ0537:無効なコンテンツタイプ。 SOAPメッセージではなくエラーメッセージである可能性があります 何かが間違っていました! com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:無効なContent-Type:text/html。これはSOAP応答の代わりにエラーメッセージですか?
私はContent-Type
ヘッダーを追加する必要があります。私はこれを間違ってやっていますか?どんな指導も素晴らしいでしょう。
おかげで、 ティム
サービスにはhttpsの代わりにhttpを使用することもできるため、wiresharkを使用してHTTP応答を確認することができます。 –
Wilco、これは本当に助けてくれてありがとう。私はコードからの応答が本当にhtmlであることを知ることができましたが、私はそれをすべて出すことができませんでしたが、私はそこにロボットがないことを見ました。だから、mozilla/5.0にuser-agentのヘッダを追加して、xmlが戻ってくるのを見ることができます!!私の応答soapオブジェクトは何らかの理由でnullを表示しています。だから私はまだそれが何であるか把握する必要があります。ありがとう!! – user2371906