我对这方面都不懂,以前没用过,我在网上看到一种方法就是使用axis1.4调用webservice方法,但是我自己测试了下好像不行啊,我把代码给大家看看,大家告诉我下错误在哪里将axis文件夹复制到tomcat服务器的webapp文件夹中
首先建立一个任意的java类(例如:HelloWorld.java),复制到axis文件夹下,将其扩展名改为jws,然后重新启动tomcat,在浏览器中输入http://localhost:8989/axis/HelloWorld.jws?wsdl,就会得到一个wsdl文件,其客户端调用方法如下:
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
public class TestHelloWorld {
public static void main(String[] args) throws MalformedURLException, ServiceException, RemoteException {
// TODO Auto-generated method stub
String wsdlUrl ="http://localhost:8989/axis/HelloWorld.jws?wsdl";
String nameSpaceUri ="http://localhost:8989/axis/HelloWorld.jws";
String serviceName = "HelloWorldService";
String portName = "HelloWorld";
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service afService =serviceFactory.createService(new URL(wsdlUrl),new QName(nameSpaceUri, serviceName));
HelloWorldInterface proxy = (HelloWorldInterface)afService.getPort(new QName(nameSpaceUri, portName),HelloWorldInterface.class);
System.out.println("return value is "+proxy.getName("john") ) ;
}
} 这个方法不行,我试了的
首先建立一个任意的java类(例如:HelloWorld.java),复制到axis文件夹下,将其扩展名改为jws,然后重新启动tomcat,在浏览器中输入http://localhost:8989/axis/HelloWorld.jws?wsdl,就会得到一个wsdl文件,其客户端调用方法如下:
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
public class TestHelloWorld {
public static void main(String[] args) throws MalformedURLException, ServiceException, RemoteException {
// TODO Auto-generated method stub
String wsdlUrl ="http://localhost:8989/axis/HelloWorld.jws?wsdl";
String nameSpaceUri ="http://localhost:8989/axis/HelloWorld.jws";
String serviceName = "HelloWorldService";
String portName = "HelloWorld";
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service afService =serviceFactory.createService(new URL(wsdlUrl),new QName(nameSpaceUri, serviceName));
HelloWorldInterface proxy = (HelloWorldInterface)afService.getPort(new QName(nameSpaceUri, portName),HelloWorldInterface.class);
System.out.println("return value is "+proxy.getName("john") ) ;
}
} 这个方法不行,我试了的
解决方案 »
- 高分求解hibernate高效批量更新方案,结贴率100%,在线等
- Hibernate关联映射问题,公文流传, 即document对应fromUserId和toUserId,怎么实现,困扰几天了,帮忙看一下
- 求助:EJB问题 无法将 NULL 插入 ("CX01"."OUTPUT_BILL"."VALID_FLAG")
- 使用SPRING遇到错误
- struts中关于标签声明的问题....
- STRUTS种怎么实现这个功能?
- 请问如何在用POI生成EXCEL文件之后,将其调整为最适合的列宽。
- 急---求助!!!!!!!!!!!!
- 分页显示问题,向高手请教!!
- org.springframework.beans.factory.NoSuchBeanDefinitionException 异常
- 怎么Struts2.18中默认的Action方法是create() ?
- 如何在J2EE项目中实现web页面可配置
如果你发布成功了,http://localhost:8989/axis/HelloWorld.jws?wsdl就能看到起wsdl文件还有你的客户端发问的代码不要这样写用axis的api去写
这样import javax.xml.namespace.QName;import org.apache.axis.AxisFault;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;public class TestHelloWorld {
public static void main(String[] args) throws MalformedURLException, ServiceException, RemoteException {
// TODO Auto-generated method stub
String wsdlUrl ="http://localhost:8989/axis/HelloWorld.jws";
String serviceName = "HelloWorldService"; //服务名
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
call.setOperationName(new QName(serviceName, "getName"));
call.addParameter("string", Constants.XSD_STRING, ParameterMode.IN);
call.setReturnType(Constants.XSD_STRING);
String res = (String) call.invoke(new Object[] {"john"});
System.out.println(res);
}
}方法有异常我没有捕获,LZ可以试一下我上面的方法
http://wenku.baidu.com/view/558a8f3143323968011c9279.html