AXIS的Server.userException,刚学就受这么大的打击!

gosure 2007-05-21 04:46:14
服务端:
-------------------
HelloWorld.java

public class HelloWorld {
public String sayHello()
{
return "HELLO WORLD!";
}
}

改名为HelloWorld.jws,放到TOMCAT目录里。
用IE访问http://127.0.0.1:8080/axis/HelloWorld.jws?WSDL
可以看到XML文档。

客户端:
-----------------------
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import javax.xml.rpc.ParameterMode;

public class TestClient {
public static void main(String[] args) throws Exception {

String endpoint = "http://127.0.0.1:8080/axis/HelloWorld.jws";// 指明服务所在位置

Service service = new Service(); // 创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();// 创建Call实例,也是必须的!

call.setTargetEndpointAddress(new java.net.URL(endpoint));// 为Call设置服务的位置

System.out.println(endpoint);//这里可以输出

//call.setOperationName("sayHello");// 注意方法名与HelloWorld.java中一样!!

String res = (String)call.invoke("sayHello",new Object[] {});// 返回String,没有传入参数

System.out.println(res);
}
}

错误:
-------------------
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:396)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.setProperty(SAXParserImpl.java:395)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:246)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
at org.apache.axis.client.Call.invokeEngine(Call.java:2545)
at org.apache.axis.client.Call.invoke(Call.java:2515)
at org.apache.axis.client.Call.invoke(Call.java:2210)
at org.apache.axis.client.Call.invoke(Call.java:2133)
at org.apache.axis.client.Call.invoke(Call.java:2158)
at TestClient.main(TestClient.java:20)


java.lang.NullPointerException
at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
at org.apache.axis.client.Call.invoke(Call.java:2213)
at org.apache.axis.client.Call.invoke(Call.java:2133)
at org.apache.axis.client.Call.invoke(Call.java:2158)
at TestClient.main(TestClient.java:20)
Caused by: java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:396)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.setProperty(SAXParserImpl.java:395)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:246)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:377)
at org.apache.axis.client.Call.invokeEngine(Call.java:2545)
at org.apache.axis.client.Call.invoke(Call.java:2515)
at org.apache.axis.client.Call.invoke(Call.java:2210)
... 3 more
...全文
1056 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qlrhoo 2008-08-01
  • 打赏
  • 举报
回复
你new出来的缘故啊
gongmingwind 2008-07-30
  • 打赏
  • 举报
回复
与我出的错误一样
gosure 2007-05-21
  • 打赏
  • 举报
回复
IE http://127.0.0.1:8080/axis/HelloWorld.jws?method=helloWorld
可以得到正确的结果,服务端也有正确的输出。
为什么客户端就出错呢?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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