给你一个最简单的方法:
第第一段:根据 拿到WSDL文件.
第第二段:根据Axis的jar包,把WSDL文件生成客服端java代码.(可以把java文件打成jar文件,便于管理.怎么生成java代码,百度里都有说明我就不写了.)
第第三段:在你工程里用AXIS的功能属性,调用外部接口;给你一个格式模板:
MobileCodeWSLocator l=new MobileCodeWSLocator();//MobileCodeWSLocator是WSDL文件生成客服端java类;
MobileCodeWSSoap s=l.getMobileCodeWSSoap();();//MobileCodeWSSoap 是WSDL文件生成客服端java类
如果你用Axis生成的java类,格式和上面一样;自己参考一下就懂了.
你上面明显的连接异常,第三方服务明显没有开,WEBSERVICE可以设置户名、密码,像行所有的WEBSERVICE都设置,安全考虑吧.
对于你这个需求,可以用当前比较热门的websocket来解决.
你可以自己搭建websocket服务,也可以使用第三方的websocket推送框架,比如【GoEasy】.
【GoEasy】目前支持java、php、python等服务端语言,同时也支持小程序、vue、uniapp等前端技术,使用起来还是非常方便的.
java调用wsdl的步骤如下,主要是使用第三方框架:
步骤如下:
import?java.rmi.RemoteException;
import?javax.xml.rpc.ParameterMode;
import?javax.xml.rpc.ServiceException;
import?org.apache.axis.client.Call;
import?org.apache.axis.client.Service;
import?org.apache.axis.encoding.XMLType;
public?class?webServiceTest?{
public?String?invokeRemoteFuc()?{
String?endpoint?=?"";
String?result?=?"no?result!";
Service?service?=?new?Service();
Call?call;
Object[]?object?=?new?Object[1];
object[0]?=?"Dear?I?miss?you";//Object是用来存储方法的参数
try?{
call?=?(Call)?service.createCall();
call.setTargetEndpointAddress(endpoint);//?远程调用路径
call.setOperationName("say");//?调用的方法名
//?设置参数名:
call.addParameter("str1",?//?参数名
XMLType.XSD_STRING,//?参数类型:String
ParameterMode.IN);//?参数模式:'IN'?or?'OUT'
//?设置返回值类型:
call.setReturnType(XMLType.XSD_STRING);//?返回值类型:String??
result?=?(String)?call.invoke(object);//?远程调用
}?catch?(ServiceException?e)?{
e.printStackTrace();
}?catch?(RemoteException?e)?{
}
return?result;
public?static?void?main(String[]?args)?{
webServiceTest?t?=?new?webServiceTest();
String?result?=?t.invokeRemoteFuc();
System.out.println(result);
private JaxWsProxyFactoryBean getProxyFactory(Class? clazz,String address){
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(clazz);
factory.setAddress(address);
return factory;
public void save(){
JaxWsProxyFactoryBean factory = getProxyFactory(ProgramVerWebService.class, PROGRAM_VER_WEB_SERVICE_ADDRESS);
ProgramVerWebService service = (ProgramVerWebService)factory.create();
String result = service.getEmpByAccount("abc");
本地建立接口,如ProgramVerWebService,然后建立factory调用即可,这里用的是cxf
ProgramVerWebServiceImplServiceStub stub = new ProgramVerWebServiceImplServiceStub();
GetEmpByAccountE e = new GetEmpByAccountE();
GetEmpByAccount request = new GetEmpByAccount();
request.setArg0("abc");
e.setGetEmpByAccount(request);
String result = stub.getEmpByAccount(e).getGetEmpByAccountResponse().get_return();
比如:
public?class?WsDemo{
public?void?OnMessage(xxxEvent?event){//单词忘了....
以上就是土嘎嘎小编为大家整理的WS协议接口java代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!