WebService 简单例子,使用CXF框架
发布时间:2020-12-17 00:57:29 所属栏目:安全 来源:网络整理
导读:下载CXF:CXF下载 在lib下面有12jar包需要添加, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 先定义接口: import java.util.List;import javax.jws.WebService;@WebServicepublic interface FirstWebService {String say(String hua);Stri
下载CXF:CXF下载 在lib下面有12jar包需要添加, ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
先定义接口:
import java.util.List; import javax.jws.WebService; @WebService public interface FirstWebService { String say(String hua); String sayToUser(Person p); List<Person> getPersons(); } 实现类: import java.util.List; import javax.jws.WebService; @WebService(endpointInterface = "com.webservice.FirstWebService",serviceName = "FirstWebService") public class FirstWebServiceImpl implements FirstWebService { @Override public String say(String hua) { System.out.println("say:" + hua); return hua; } @Override public String sayToUser(Person p) { System.out.println(p + " by say:"); return p.getName(); } @Override public List<Person> getPersons() { return null; } } 启动服务器: import javax.xml.ws.Endpoint; import com.webservice.FirstWebService; import com.webservice.FirstWebServiceImpl; public class Boot { public static void main(String args[]) { FirstWebService service = new FirstWebServiceImpl(); String address = "http://127.0.0.1:9090/service"; Endpoint.publish(address,service); } } 2012-6-11 10:22:36 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 信息: Creating Service {http://webservice.com/}FirstWebService from class com.webservice.FirstWebService 2012-6-11 10:22:37 org.apache.cxf.endpoint.ServerImpl initDestination 信息: Setting the server's publish address to be http://127.0.0.1:9090/service 2012-06-11 10:22:37.781:INFO:oejs.Server:jetty-7.5.4.v20111024 2012-06-11 10:22:37.855:INFO:oejs.AbstractConnector:Started SelectChannelConnector@127.0.0.1:9090 STARTING 2012-06-11 10:22:37.913:INFO:oejsh.ContextHandler:started o.e.j.s.h.ContextHandler{,null} 然后在浏览器中查看注册的webService: url:http://127.0.0.1:9090/service?wsdl wsdl:definitions xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="FirstWebService" targetNamespace="http://webservice.com/"> <wsdl:types> <xs:schema xmlns:tns="http://webservice.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" targetNamespace="http://webservice.com/" version="1.0"> <xs:element name="getPersons" type="tns:getPersons"/> <xs:element name="getPersonsResponse" type="tns:getPersonsResponse"/> <xs:element name="say" type="tns:say"/> <xs:element name="sayResponse" type="tns:sayResponse"/> <xs:element name="sayToUser" type="tns:sayToUser"/> <xs:element name="sayToUserResponse" type="tns:sayToUserResponse"/> <xs:complexType name="sayToUser"> <xs:sequence> <xs:element minOccurs="0" name="arg0" type="tns:person"/> </xs:sequence> </xs:complexType> <xs:complexType name="person"> <xs:sequence> <xs:element name="age" type="xs:int"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="friends" nillable="true" type="tns:person"/> <xs:element name="id" type="xs:int"/> <xs:element minOccurs="0" name="name" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="sayToUserResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="say"> <xs:sequence> <xs:element minOccurs="0" name="arg0" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="sayResponse"> <xs:sequence> <xs:element minOccurs="0" name="return" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="getPersons"> <xs:sequence/> </xs:complexType> <xs:complexType name="getPersonsResponse"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:person"/> </xs:sequence> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message name="say"> <wsdl:part element="tns:say" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="getPersonsResponse"> <wsdl:part element="tns:getPersonsResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="sayResponse"> <wsdl:part element="tns:sayResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="getPersons"> <wsdl:part element="tns:getPersons" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="sayToUserResponse"> <wsdl:part element="tns:sayToUserResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="sayToUser"> <wsdl:part element="tns:sayToUser" name="parameters"></wsdl:part> </wsdl:message> <wsdl:portType name="FirstWebService"> <wsdl:operation name="sayToUser"> <wsdl:input message="tns:sayToUser" name="sayToUser"></wsdl:input> <wsdl:output message="tns:sayToUserResponse" name="sayToUserResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="say"> <wsdl:input message="tns:say" name="say"></wsdl:input> <wsdl:output message="tns:sayResponse" name="sayResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getPersons"> <wsdl:input message="tns:getPersons" name="getPersons"></wsdl:input> <wsdl:output message="tns:getPersonsResponse" name="getPersonsResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="FirstWebServiceSoapBinding" type="tns:FirstWebService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="sayToUser"> <soap:operation soapAction="" style="document"/> <wsdl:input name="sayToUser"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="sayToUserResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getPersons"> <soap:operation soapAction="" style="document"/> <wsdl:input name="getPersons"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="getPersonsResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="say"> <soap:operation soapAction="" style="document"/> <wsdl:input name="say"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="sayResponse"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="FirstWebService"> <wsdl:port binding="tns:FirstWebServiceSoapBinding" name="FirstWebServiceImplPort"> <soap:address location="http://127.0.0.1:9090/service"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
客户端: import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.webservice.FirstWebService; public class Boot { /** * @param args */ public static void main(String[] args) { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(FirstWebService.class); factory.setAddress("http://127.0.0.1:9090/service"); FirstWebService client = (FirstWebService) factory.create(); System.out.println("From Service response :" + client.say("hahh")); } } ? From Service response :hahh ?需要增加上面jar到系统类加载路径
动态客户端:
java提供:wsdl2java工具
wsdl2java -frontent javaxs21 http://127.0.0.1:9090/service?wsdlC++/C# 提供wsdl.exe (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |