首页编程javawebservice?java开发webservice的几种方式

javawebservice?java开发webservice的几种方式

编程之家 2023-11-01 217次浏览

大家好,今天我将为大家揭秘javawebservice和java开发webservice的几种方式的奥秘,希望我的分享能给你带来新的启发和知识。

javawebservice?java开发webservice的几种方式

java的WebService最大的好处是什么,最多的使用场合是什么

1.web service本身不能做太多事,各种功能都是你自己编程实现的,但是你的程序只能自己用,自己看,别人根本不知道你的程序是什么样的。而web service就是规定了一种方式,告诉你将你的程序如何的部署到服务器上,然后大家通过一种协商好的地址能找到你的程序的说明,说明的格式也是大家都协商好的,所以可以读懂……然后你就可以根据那个地址来调用这个程序的方法了。

你看,web service本身貌似没干什么,它就是让你可以发布自己的程序和调用别人发布的程序。

2.协议基本就是上面提到的那些大家协商好的东西了,什么形式?什么格式?什么样式?之类的,可以说协议被库支持,其实顺序应该是先有了这个协议,然后这个库遵从这个协议来解析,就说支持这个协议。

3.其实webservice传的数据可以是任意啊,规定用各种格式只是考虑到webservice是牵扯到多方的,不规定的话就好像两个人用不同语言交流,完全互相都不懂,那么就没意义了。xml是最通用的,你也可以说是和库绑定的,但是因为它简单通用,基本各种环境都支持解析xml

java如何调用webservice接口

Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。

1、编写代码方式:

javawebservice?java开发webservice的几种方式

package com.yudun.test;

import java.rmi.RemoteException;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import org.apache.axis.message.PrefixedQName;

import org.apache.axis.message.SOAPHeaderElement;

javawebservice?java开发webservice的几种方式

import com.cezanne.golden.user.Exception;

import com.cezanne.golden.user.UserManagerServiceProxy;

import javax.xml.namespace.QName;

import java.net.MalformedURLException;

import javax.xml.rpc.ServiceException;

import javax.xml.soap.Name;

import javax.xml.soap.SOAPException;

public class testWebService{

public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException

{

//标识Web Service的具体路径

String endpoint="WebService服务地址";

//创建 Service实例

Service service= new Service();

//通过Service实例创建Call的实例

Call call=(Call) service.createCall();

//将Web Service的服务路径加入到call实例之中.

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

//由于需要认证,故需要设置调用的SOAP头信息。

Name headerName= new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url","string_itemName"));

org.apache.axis.message.SOAPHeaderElement header= new SOAPHeaderElement(headerName);

header.addTextNode("blablabla");

call.addHeader(header);

// SOAPHeaderElement soapHeaderElement= new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url","SoapHeader");

// soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");

// try

//{

// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");

//}

// catch(SOAPException e)

//{

// e.printStackTrace();

//}

// call.addHeader(soapHeaderElement);

//调用Web Service的方法

org.apache.axis.description.OperationDesc oper;

org.apache.axis.description.ParameterDesc param;

oper= new org.apache.axis.description.OperationDesc();

oper.setName("opName");

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

param= new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("","arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"), java.lang.String.class, false, false);

param.setOmittable(true);

oper.addParameter(param);

oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema","string"));

oper.setReturnClass(java.lang.String.class);

oper.setReturnQName(new javax.xml.namespace.QName("","return"));

oper.setStyle(org.apache.axis.constants.Style.WRAPPED);

oper.setUse(org.apache.axis.constants.Use.LITERAL);

oper.addFault(new org.apache.axis.description.FaultDesc(

new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

"Exception",

new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","Exception"),

true

));

call.setOperation( oper);

call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url","opName"));

//调用Web Service,传入参数

String res=( String) call.invoke( new Object[]("arg0","arg1"));

System.out.println("===============");

return res;

}

/**

*@param args

*/

public static void main(String[] args){

try{

System.out.println(getResult());

} catch(MalformedURLException e){

e.printStackTrace();

} catch(RemoteException e){

e.printStackTrace();

} catch(ServiceException e){

e.printStackTrace();

} catch(SOAPException e){

e.printStackTrace();

}

}

}

2、利用Eclipse自动生成WebService client代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)

首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish

这样,WebService Client代码已经生成好了。

接下来写一个Test类,在main函数中输入如下代码:

String endpoint="服务器的WebService的地址";

YourWebServiceNameProxy umsp= new YourWebServiceNameProxy(endpoint);

try{

String resultStr= umsp.opMethod("arg0","arg1");

System.out.println(resultStr);

} catch(Exception e){

System.out.println("异常");

e.printStackTrace();

} catch(RemoteException e){

System.out.println("RemoteException异常");

e.printStackTrace();

}

如果还有疑问的话还有视频,如果对你有帮助请采纳!

用java怎么写webservice

Web Services以XML作为数据交换的标准格式,它是跨平台的应用,允许以任何方式创建Web Services,在.NET、Java平台上访问。

在Java平台创建和访问Web Service多通过Axis完成。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。Axis目前版本是为Java编写的。在使用Axis访问Web Service时,需要引入以下包(10个):axis-ant.jar、axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar、activation-1.1.jar和mail-1.4.jar。

(1)访问Java创建的Web Service

在当前Java客户端应用中添加相应的10个Axis包,编写客户端程序:

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

public class Test{

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

try{

String endpoint="http://localhost:8080/MyService/services/Hello";

Service service= new Service();

Call call=(Call)service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));

call.setOperationName("getHello");

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

System.out.println(res);

}

catch(Exception ex){

ex.printStackTrace();

}

}

}

其中两处代码加粗,第一处表示引用Java Web Service的URL,第二处表示公共的方法名称。

java开发webservice的几种方式

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。摘自中华考试网 http://www.examw.com/java/jichu/190181/index.html

1.Axis2

Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。

2.Apche CXF

CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。

3.JDK开发webservice(jdk自带的jaxws)

关于javawebservice的内容到此结束,希望对大家有所帮助。

vuejs,vue.js和vue区别 找不到服务器或 dns 错误 如何解决电脑出现“找不到服务器或DNS错误”