请教: Axis开发web service客户端的问题

wentangwood 2008-10-20 03:59:02
我用axis开发web service客户端,服务器端用.net开发。根据网上看到的技术介绍,我采用如下步骤:
1. 得到web service的wsdl文件
2. 用axis的WSDL2Java工具生成java的客户端代码框架,例如我的Service name为Service1,我得到如下的java文件:
Service1.java
Service1Locator.java
Service1Soap.java
Service1Soap12Stub.java
Service1SoapStub.java
3. 在相同package内创建一新的java源文件,内容如下:
package org.tempuri;

public class TestWs
{
public static void main(String argv[])
{
try
{
Service1Locator locator = new Service1Locator();
Service1Soap stub = locator.getService1Soap();
int i = stub.square(10);
System.out.print("i = " + i);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

其中square是服务器端定义和实现的一个方法,计算给定数值的平方。

问题:运行到红色代码处时出错,跟进去代码是这样的:
public int square(int i) throws java.rmi.RemoteException {
if (super.cachedEndpoint == null) {
throw new org.apache.axis.NoEndPointException();
}
org.apache.axis.client.Call _call = createCall();
_call.setOperation(_operations[1]);
_call.setUseSOAPAction(true);
_call.setSOAPActionURI("http://tempuri.org/square");
_call.setEncodingStyle(null);
_call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
_call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
_call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "square"));

setRequestHeaders(_call);
setAttachments(_call);
try {
java.lang.Object _resp = _call.invoke(new java.lang.Object[] {new java.lang.Integer(i)});
if (_resp instanceof java.rmi.RemoteException) {
throw (java.rmi.RemoteException)_resp;
}
...

红色代码这一行,_resp总是返回null。奇怪的是我即便修改上面的uri或soap address为无效,这一行也不抛出任何异常,只是同样返回null.

本人对axis几乎一无所知,希望高手拔刀相助, 不胜感激!!!
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wentangwood 2008-10-21
  • 打赏
  • 举报
回复
怎么还是没有人回答呢?
我怀疑是namespace的问题,但我把tempuri.org改成localhost,重新做一遍还是同样的问题
高手呢??????????
wentangwood 2008-10-20
  • 打赏
  • 举报
回复
我用axis自带的tcp monitor工具察看了一下,根本没有把请求发送到服务端。不知道哪儿遗漏了什么。
急!高手请指教~~~~~~~
wentangwood 2008-10-20
  • 打赏
  • 举报
回复
补充一下:我用一些工具如visual web service client测试了web service server,是ok的

67,513

社区成员

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

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