Webservice实现
来源:互联网 发布:淘宝推荐系统 研究 编辑:程序博客网 时间:2024/05/21 17:11
使用JavaBean就可以生成,然后又wsdl文件。
有了wsdl文件可以生成客户端代码。
完成了webservice的实现。
现在使用开发工具开发实在是太快了。
- package com.rx;
- public class Calculate {
- public int add(int a, int b) {
- return a + b;
- }
- public String sayHello(String name) {
- return "Hello : " + name + ", You are welcome !";
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <wsdl:definitions targetNamespace="http://rx.com" xmlns:impl="http://rx.com" xmlns:intf="http://rx.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:types>
- <schema targetNamespace="http://rx.com" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <element name="addResponse">
- <complexType>
- <sequence>
- <element name="addReturn" type="xsd:int"/>
- </sequence>
- </complexType>
- </element>
- <element name="sayHello">
- <complexType>
- <sequence>
- <element name="name" nillable="true" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
- <element name="sayHelloResponse">
- <complexType>
- <sequence>
- <element name="sayHelloReturn" nillable="true" type="xsd:string"/>
- </sequence>
- </complexType>
- </element>
- <element name="add">
- <complexType>
- <sequence>
- <element name="a" type="xsd:int"/>
- <element name="b" type="xsd:int"/>
- </sequence>
- </complexType>
- </element>
- </schema>
- </wsdl:types>
- <wsdl:message name="addResponse">
- <wsdl:part element="intf:addResponse" name="parameters"/>
- </wsdl:message>
- <wsdl:message name="addRequest">
- <wsdl:part element="intf:add" name="parameters"/>
- </wsdl:message>
- <wsdl:message name="sayHelloResponse">
- <wsdl:part element="intf:sayHelloResponse" name="parameters"/>
- </wsdl:message>
- <wsdl:message name="sayHelloRequest">
- <wsdl:part element="intf:sayHello" name="parameters"/>
- </wsdl:message>
- <wsdl:portType name="Calculate">
- <wsdl:operation name="add">
- <wsdl:input message="intf:addRequest" name="addRequest"/>
- <wsdl:output message="intf:addResponse" name="addResponse"/>
- </wsdl:operation>
- <wsdl:operation name="sayHello">
- <wsdl:input message="intf:sayHelloRequest" name="sayHelloRequest"/>
- <wsdl:output message="intf:sayHelloResponse" name="sayHelloResponse"/>
- </wsdl:operation>
- </wsdl:portType>
- <wsdl:binding name="CalculateSoapBinding" type="intf:Calculate">
- <wsaw:UsingAddressing wsdl:required="false" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
- <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <wsdl:operation name="add">
- <wsdlsoap:operation soapAction="add"/>
- <wsdl:input name="addRequest">
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- <wsdl:output name="addResponse">
- <wsdlsoap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="sayHello">
- <wsdlsoap:operation soapAction="sayHello"/>
- <wsdl:input name="sayHelloRequest">
- <wsdlsoap:body use="literal"/>
- </wsdl:input>
- <wsdl:output name="sayHelloResponse">
- <wsdlsoap:body use="literal"/>
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:service name="CalculateService">
- <wsdl:port binding="intf:CalculateSoapBinding" name="Calculate">
- <wsdlsoap:address location="http://localhost:9080/WebServiceProject/services/Calculate"/>
- </wsdl:port>
- </wsdl:service>
- </wsdl:definitions>
下面的是IBM RAD生成的代理类,其他省了。。。。。。
- package com.rx;
- package com.rx;
- public class CalculateProxy implements com.rx.Calculate {
- private boolean _useJNDI = true;
- private String _endpoint = null;
- private com.rx.Calculate __calculate = null;
- public CalculateProxy() {
- _initCalculateProxy();
- }
- private void _initCalculateProxy() {
- if (_useJNDI) {
- try{
- javax.naming.InitialContext ctx = new javax.naming.InitialContext();
- __calculate = ((com.rx.CalculateService)ctx.lookup("java:comp/env/service/CalculateService")).getCalculate();
- }
- catch (javax.naming.NamingException namingException) {}
- catch (javax.xml.rpc.ServiceException serviceException) {}
- }
- if (__calculate == null) {
- try{
- __calculate = (new com.rx.CalculateServiceLocator()).getCalculate();
- }
- catch (javax.xml.rpc.ServiceException serviceException) {}
- }
- if (__calculate != null) {
- if (_endpoint != null)
- ((javax.xml.rpc.Stub)__calculate)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
- else
- _endpoint = (String)((javax.xml.rpc.Stub)__calculate)._getProperty("javax.xml.rpc.service.endpoint.address");
- }
- }
- public void useJNDI(boolean useJNDI) {
- _useJNDI = useJNDI;
- __calculate = null;
- }
- public String getEndpoint() {
- return _endpoint;
- }
- public void setEndpoint(String endpoint) {
- _endpoint = endpoint;
- if (__calculate != null)
- ((javax.xml.rpc.Stub)__calculate)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
- }
- public com.rx.Calculate getCalculate() {
- if (__calculate == null)
- _initCalculateProxy();
- return __calculate;
- }
- public int add(int a, int b) throws java.rmi.RemoteException{
- if (__calculate == null)
- _initCalculateProxy();
- return __calculate.add(a, b);
- }
- public java.lang.String sayHello(java.lang.String name) throws java.rmi.RemoteException{
- if (__calculate == null)
- _initCalculateProxy();
- return __calculate.sayHello(name);
- }
- }
- import java.rmi.RemoteException;
- public class Test {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Calculate calculateProxy = new CalculateProxy();
- try {
- calculateProxy.sayHello("china");
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- }
- }
在JavaBean中调用webservice需要runtime下的2个包
默认路径: c:/parogram Files/IBM/SDP70/runtimes/base_v61/runtimes
com.ibm.ws.admin.client_6.1.0.jar
com.ibm.ws.webservices.thinclient_6.1.0.jar
- Webservice实现
- WebService:JAX-WS实现WebService
- webservice 实现动态刷新
- webService实现数据传输
- C++实现webservice
- XML Webservice实现原理
- sql server2005 实现 webservice
- Tomcat+Axis实现webservice
- MyEclipse java webservice实现
- 用 C 实现 WebService
- 通过Pojo实现WebService
- MyEclipse java webservice实现
- axis实现webservice
- XML Webservice实现原理
- XML Webservice实现原理
- MyEclipse java webservice实现
- xfire实现webservice
- 实现WebService身份验证
- 网站被植入了 病毒
- Java桌面游戏巡礼——Java数独
- 迎接2009
- 寻求高手帮忙 数据库被植入了病毒
- 使用HttpMoudle和IPrincipal实现自定义身份及权限认证
- Webservice实现
- 巨型整数运算符重载实现部分
- NSIS版本号比较-VersionCompare Bug
- Skype协议分析
- What Would Warren Do?
- 牯岭街少年杀人事件
- LDAP
- 写在08年的最后一天
- 使用 dom4j 解析 XML