AXIS调用WEBSERVICE报错,求帮助。

untatsu 2013-05-25 12:02:15
服务端是用JWS写的,由于客户端要用JDK1.5,所以就用AXIS调用了,实在没怎么用过WEBSERVICE,请大家帮忙看看。
另外我用JWS生成本地类的方法调用是没问题的。

服务端代码:

//BigAntService.java
package cn.com.gdjtny.service;

import java.io.IOException;
import java.util.Properties;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.Endpoint;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;

@WebService
@BindingType
public class BigAntService {

public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:9990/BigAntService/cn.com.gdjtny.service.BigAntService", new BigAntService());
}

@WebMethod
public boolean sendMsg(String subject, String content, String addreceivers,
String contenttype) {
Properties prop = new Properties();
try {
prop.load(this.getClass().getResourceAsStream(
"/cn/com/gdjtny/res/bigant.properties"));
} catch (IOException e) {
e.printStackTrace();
return false;
}
String server = prop.getProperty("server");
int serverport = Integer.parseInt(prop.getProperty("serverport"));
String loginname = prop.getProperty("loginname");
String password = prop.getProperty("password");
ActiveXComponent smsg = new ActiveXComponent("AntCom.AntMsg");
ActiveXComponent sses = new ActiveXComponent("AntCom.AntSyncSession");
ActiveXComponent sinfo = new ActiveXComponent("AntCom.AntLoginInfo");
Dispatch msg = (Dispatch) smsg.getObject();
Dispatch.put(msg, "Subject", subject);
Dispatch.put(msg, "Content", content);
String[] arr_addreceivers = addreceivers.split(",");
for (int i = 0; i < arr_addreceivers.length; i++) {
Dispatch.call(msg, "AddReceiver", arr_addreceivers[i], "");
}
Dispatch.put(msg, "ContentType", contenttype);
Dispatch info = (Dispatch) sinfo.getObject();
Dispatch.put(info, "Server", server);
Dispatch.put(info, "ServerPort", serverport);
Dispatch.put(info, "LoginName", loginname);
Dispatch.put(info, "PassWord", password);
Dispatch ses = (Dispatch) sses.getObject();
Dispatch.call(ses, "Login", info);
Dispatch.call(ses, "SendMsg", msg, 0);
return true;
}

}


客户端代码:

//T.java
package cn.com.gdjtny.wsclient;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class T {

public static void main(String[] args) throws Exception {
String endpoint = "http://127.0.0.1:9990/BigAntService/cn.com.gdjtny.service.BigAntService?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName(new QName("http://service.gdjtny.com.cn/",
"sendMsg"));
call.addParameter("subject",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("content",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("addreceivers",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("contenttype",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_BOOLEAN);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.ws.com/ws");
String subject = "subject";
String content = "content";
String addreceivers = "zhangsan,lisi";
String contenttype = "Text/Text";
Boolean result = (Boolean) call.invoke(new Object[] { subject, content,
addreceivers, contenttype });
System.out.println(result);
}

}


客户端异常信息:

Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.lang.NullPointerException
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(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
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 cn.com.gdjtny.wsclient.T.main(T.java:36)

{http://xml.apache.org/axis/}hostname:BAO-PC

java.lang.NullPointerException
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(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
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 cn.com.gdjtny.wsclient.T.main(T.java:36)
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
正皇旗 2014-07-30
  • 打赏
  • 举报
回复
服务端没拿到值
untatsu 2013-05-25
  • 打赏
  • 举报
回复
服务端也报错了,异常信息如下:
五月 24, 2013 11:57:20 下午 com.sun.xml.internal.ws.server.sei.EndpointMethodHandler invoke
SEVERE: null
java.lang.NullPointerException
	at cn.com.gdjtny.service.BigAntService.sendMsg(BigAntService.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.xml.internal.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:235)
	at com.sun.xml.internal.ws.server.InvokerTube$2.invoke(InvokerTube.java:135)
	at com.sun.xml.internal.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:246)
	at com.sun.xml.internal.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:85)
	at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626)
	at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585)
	at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570)
	at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467)
	at com.sun.xml.internal.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:299)
	at com.sun.xml.internal.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:593)
	at com.sun.xml.internal.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
	at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:95)
	at com.sun.xml.internal.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:80)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
	at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
	at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:668)
	at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
	at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:640)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
oh_Maxy 2013-05-25
  • 打赏
  • 举报
回复
服务端有没有server-config.wsdd文件?看看定义的功能接口是否合入进来了。 嗯,方便的话,把这个文件的内容发出来瞅瞅呗?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧