0

STS で Web アプリケーションを開発しています。その中で Web サービスが呼び出され、結果が表示されます。STS 自体を使用して wsdl から Web サービス クライアントを生成しました。この Web サービスにリクエストを送信し、結果を返すサンプル Java ファイルを作成しました。コードは次のとおりです。

public final class Client {
static Answer answerObj;
private Client() {
}

public static Answer webCall() throws Exception {
    // START SNIPPET: client

    Question questionObj = new Question();

    questionObj.setName("t");
    questionObj.setNameStartsWith(true);
    questionObj.setDistrict("kob");
    questionObj.setHouseNo("0");
    questionObj.setPhone("0");
    questionObj.setStreet("hai");
    questionObj.setStreetStartsWith(false);
    //questionObj.setAccountantName("")
    questionObj.setCvrNo(1);
    //questionObj.setDistrict("Soendergade 2C ");

    //Like this set all the values here .
    /*System.getProperties().put("proxySet", "true");
    System.getProperties().put("https.proxyHost", "");  
    System.getProperties().put("https.proxyPort",80 );*/

       answerObj =nne_PortTypeProxyObj.search(questionObj, 10, 10, 0, "");

           System.out.println(answerObj.getCompanyBasic().length);


    return answerObj;
    // END SNIPPET: client
}

}

今私の問題は、Web サービスでメソッド検索を呼び出すと、次の例外が発生することです。

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
 faultSubcode: 
 faultString: caught exception while handling request: deserialization error: java.lang.NumberFormatException: For input string: ""
 faultActor: 
 faultNode: 
 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:caught exception while handling request: deserialization error: java.lang.NumberFormatException: For input string: ""
    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 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
    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.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
    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 net.stibo.com.nne._3_1.PortTypeBindingStub.search(PortTypeBindingStub.java:1446)
    at net.stibo.com.nne._3_1PortTypeProxy.search(PortTypeProxy.java:188)
    at com.sapienter.jbilling.server.util.Client.webCall(Client.java:51)
    at com.sapienter.jbilling.server.util.Client$webCall.call(Unknown Source)

私はstackoverflowで同じものを検索し、これを見つけました: WSによって送信される生成されたxmlのmultiRef

検索方法でいろいろパラメータを試してみたのでこれが問題だと思いますが、これに対する良い解決策が見つかりません。誰か助けてくれませんか? PLZZZ 助けて....

4

1 に答える 1

0

AXIS で生成されたスタブの何が問題なのかわかりませんが、リンクのように Web サービスで必要に応じて要求をフレーミングすることにより、Java SAAJ ライブラリを使用して状況を克服しました: Working Soap client example

于 2013-10-26T17:16:59.277 に答える