web service 调用问题.

lbd8848 2009-07-03 04:17:27
建了一个web service 服务端,可以打开 (使用axis 2 jdk1.4)
再建一个客户端访问(axis 1.3 jdk 1.4):
try
{
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(WsdlUrl));
call.setOperationName(new QName(NameSpace, FuncName));
String ret = (String)call.invoke(new Object[]{"2","2","2"});
return ret;
}
catch(Exception e)
{
return e.getMessage();
}
提示:; nested exception is:
java.lang.NullPointerException

不知是什么原因,请帮忙看看
...全文
70 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbd8848 2009-07-06
  • 打赏
  • 举报
回复
谢谢,Johnson_Hong ,谢谢各位,问题解决了.
原来是weblogic.jar与 axis 的冲突问题!郁闷~
pathuang68 2009-07-05
  • 打赏
  • 举报
回复
帮顶
lbd8848 2009-07-04
  • 打赏
  • 举报
回复
这样可以正常执行 web service 并返回
String ret = (String)call.invoke(new Object[]{null,null,null})
凹谷 2009-07-04
  • 打赏
  • 举报
回复
什么东东?
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
堆栈信息没有打印出来吗?
String ret = (String)call.invoke(new Object[]{null,null,null})可以到达断点吗
lbd8848 2009-07-04
  • 打赏
  • 举报
回复
报错信息是:
提示:; nested exception is:
java.lang.NullPointerException

这样
String ret = (String)call.invoke(new Object[]{"2","2","2"});
不行!

这样
String ret = (String)call.invoke(new Object[]{null,null,null});
行!

郁闷~
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
那就是没有进服务的方法,报错的异常堆栈信息是什么?
lbd8848 2009-07-04
  • 打赏
  • 举报
回复
3个String类型都是,设了断点,没效果
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
你的参数是3个String类型吗?
你把服务端的这个方法的入口设置一个断点,看一下有没有进去
lbd8848 2009-07-04
  • 打赏
  • 举报
回复
好像是这句出了问题
String ret = (String)call.invoke(new Object[]{"2","2","2"});

不加参数可以用.

String ret = (String)call.invoke(new Object[]{});

但如何加参数呢
axis 1.3
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
到底有没有进到服务端的方法?详细的信息没有贴出来,
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
还有复杂对象?你的str1,str2,str3是DOWebService的三个属性???

你这段xml只是描述了一个复杂对象,并没有描述服务的方法啊。。
你调用的那个方法在服务端是怎么声明的,
在wsdl里对于的那个方法是怎么描述的?
lbd8848 2009-07-04
  • 打赏
  • 举报
回复
- <xs:element name="DOWebService">
- <xs:complexType>
- <xs:sequence>
<xs:element minOccurs="0" name="str1" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="str2" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="str3" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
Johnson_Hong 2009-07-04
  • 打赏
  • 举报
回复
难道是参数类型的问题,可是你的三个参数都是String啊,看一下wsdl里方法的描述
lbd8848 2009-07-03
  • 打赏
  • 举报
回复
空指针呀
==================
什么原因呢,如何解决
使用axis 2做客户端,使用RPCServiceClient serviceClient = new RPCServiceClient(); 可以调试成功.
JOAN5200 2009-07-03
  • 打赏
  • 举报
回复
空指针呀

67,513

社区成员

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

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