JAVA调用WEB SERVICE里遇到一个难题 100

在用JAVA调用WEBSERVICE里遇到一个难题,下面是代码:packagecom.test;importjava.net.*;importjava.util.Vect... 在用JAVA调用WEB SERVICE里遇到一个难题,下面是代码:
package com.test;
import java.net.*;
import java.util.Vector;

import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.SOAPException;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.encoding.soapenc.StringDeserializer;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
import org.apache.soap.transport.http.SOAPHTTPConnection;
import org.apache.soap.util.xml.QName;
import org.apache.commons.codec.binary.Base64;

public class WsTest {

public static void main(String[] args) throws Exception,SOAPException {
URL url = null;
try {
url=new URL("http://1921.168.102.27:8080/sjpt-sjptEJB/DrugInterfacesImpl");
} catch (MalformedURLException mue) {
System.err.println( mue.getMessage());
}
Call soapCall = new Call();

soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
soapCall.setTargetObjectURI("urn:DirectoryInterfaceService" );
soapCall.setMethodName("testClient");
Vector soapParams = new Vector();

// name, type, value, encoding style
Parameter clientId = new Parameter("clientId", int.class,"13641", null);
String no="79508032-2";
String baseno = new String(Base64.encodeBase64(no.getBytes("UTF-8")));//加密//Nzk1MDgwMzItMg==
Parameter centerNo = new Parameter("centerNo", String.class,no,null);//79508032-2
soapParams.addElement(clientId);
soapParams.addElement(centerNo);
soapCall.setParams(soapParams);
soapCall.setEncodingStyleURI("http://www.w3.org/2001/XMLSchema");
try {
Response soapResponse = soapCall.invoke(url,"");
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String returnstr = fault.getFaultString();

System.out.println("返回加密信息: " + returnstr);
byte[] encodeBase64 = Base64.decodeBase64(returnstr.getBytes("UTF-8"));
System.out.println("返回信息: " + new String(encodeBase64));

} else {
Parameter soapResult = soapResponse.getReturnValue ();
System.err.println( soapResult.getValue().toString());
}
} catch (SOAPException se) {
System.err.println( se.getMessage());
}
}
}
返回的错误信息:
No Serializer found to serialize a 'org.apache.soap.rpc.Parameter' using encoding style 'http://www.w3.org/2001/XMLSchema'.
问题好像是返回的信息没有序列化,JAVA没有对应的类型,不能接收。
展开
 我来答 举报
尴尬他马
2014-08-06
知道答主
回答量:29
采纳率:0%
帮助的人:16.3万
展开全部
返回的信息需要序列化接收,你需要生成一下
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
百度网友cbad167
2014-08-04 · TA获得超过309个赞
知道小有建树答主
回答量:388
采纳率:66%
帮助的人:295万
展开全部
你做这个的目的是什么?
先给你一个参考网址:

http://yangzb.iteye.com/blog/319850
追问
你发的网站我看过了,
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式