WebService开发文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
System.out.println("return value is " + ret); } catch (Exception ex) { ex.printStackTrace(); } } }
3 以 Stubs 方式开发一个简单的 webservice
程序
3.1 创建一个服务类,命名为 SayHello
2.1 编写服务端程序 HelloClient
public class HelloClient{ public String getName(String name) { return "hello "+name; } }
2.2 将源码拷贝到 Axis_HOME 下,重命名为 HelloClient.jws 2.3 访问连接 http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示 Axis
</servlet-mapping> <!— 这个是通过jws既java源代码的方式发布webservice。这种情况用的比较少。知道有这个配置才能使用jws 就可以了 -->
<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern>
<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping> <servlet-name>SOAPMonitorService</servlet-name> <url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
<session-config>
SayHello.wsdl "urn:SayHello"
pause
参数说明: -o 输出 wsdl 文件名称
-l 访问的 url
பைடு நூலகம்
-n 命名空间
-p 包名 命名空间的名字(urn:是命名空间的缩写,必须有!)
com.sample.service.SayHello 是接口的全路径。包名+类名
执行,产生 SayHello.wsdl 文件
java
org.apache.axis.wsdl.Java2WSDL
-o
-l"http://localhost:3000/webservice/services/SayHello"
-n
-p"com.sample.service.SayHello" "urn:SayHello" com.sample.service.SayHello
</servlet>
<servlet> <servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name> <servlet-class>
org.apache.axis.monitor.SOAPMonitorService </servlet-class> <init-param>
java org.apache.axis.wsdl.WSDL2Java com.sample.service SayHello.wsdl pause
-o .
-d Session -s -S true
-Nurn:SayHello
参数说明: -o 输出文件所在目录( .-代表当前目录 )
-s 生成 server 端绑定代码
1.2 在 web.xml 中加入如下配置信息
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListene r</listener-class>
</listener>
<servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AxisServlet </servlet-class>
自动生成的 wsdl 2.4 编写访问服务的客户端 TestHelloClient.java
import org.apache.Axis.client.Call;
import org.apache.Axis.client.Service; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import java.net.MalformedURLException; import java.rmi.RemoteException; public class SayHelloClient2 {
"http://localhost:8080/Axis/HelloClient.jws", "getName"));
call.setTargetEndpointAddress (new java.net.URL(endpoint));
String ret = (String) call.invoke(new Object[] {"zhangsan"});
1.3 Axis 支持三种 web service 的部署和开发,分别为:
1.3.1 Dynamic Invocation Interface (DII)(以源代码方式部署,基本不用)
1.3.2 Dynamic Proxy 方式
1.3.3 Stubs 方式(最常用的一种方式)
2 编写 DII(Dynamic Invocation Interface ) 方式 web 服务
<param-name>SOAPMonitorPort</param-name> <param-value>5001</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet</url-pattern>
<session-timeout>5</session-timeout> </session-config>
<mime-mapping> <extension>wsdl</extension> <mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping> <extension>xsd</extension> <mime-type>text/xml</mime-type> </mime-mapping>
3.3 根 据 SayHello.wsdl 文 件 , 通 过 axis 提 供 的 工 具
org.apache.axis.wsdl.WSDL2Java 来生成相应的 webservice 代码
在 SayHello.wsdl 目录下建立一个 WSDL2Java.bat 批处理,内容如下:
set AXIS_LIB=D:\workspace\webservice\WebRoot\WEB-INF\lib
</servlet>
<servlet> <servlet-name>AdminServlet</servlet-name> <display-name>Axis Admin Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AdminServlet </servlet-class> <load-on-startup>100</load-on-startup>
</servlet-mapping>
<!— 这个配置了指出所有webservice的访问都是以 "web应用名/service/webservice名称" 的形式来访问的。你 可以更改它的名字,但是请注意。这个需要与你的其他webservice配置文件匹配或者说同步。如WEB-INF 下的server-config.wsdd文件中对webservice的配置。还有java2wsdl和wsdl2java工具生成的代码中的配置
public static void main(String[] args) {
try { String endpoint = "http://localhost:8080/Axis/HelloClient.jws"; Service service = new Service();
Call call = null; call = (Call) service.createCall(); call.setOperationName(new QName(
文件
在 WBB-INF\classes 下建立一个 Java2wsdl.bat 批处理,内容如下:
set AXIS_LIB=D:\workspace\webservice\WebRoot\WEB-INF\lib
SET CLASSPATH=.;%CLASSPATH%;%AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB %\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commo ns-logging-1.0.4.jar;%AXIS_LIB%\mailapi_1_3_1.jar;%AXIS_LIB%\activation.jar
package com.sample.service; public interface SayHello {
public String sayHello(String name); }
3.2 通过 axis 提供的一个工具 org.apache.axis.wsdl.Java2WSDL.来产生 wsdl
WebService 开发文档
1 Axis 环境的安装
1.1 拷贝 Axis1.4 jar 包
1.1.1 到 http://xml.apache.org 网站下载 Axis 安装包。
1.1.2 将 Axis 相关包文件放在 WEB-INF\lib 目录下
Axis 可 选 的 包 : axis.jar 、 axis-ant.jar 、 commons-discovery-0.2.jar 、 commons-logging-1.0.4.jar、jaxrpc.jar、og4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar、activation.jar、 mailapi_1_3_1.jar 生成客户端时候需要使用。
SET CLASSPATH=.;%CLASSPATH%;%AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB %\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commo ns-logging-1.0.4.jar;%AXIS_LIB%\mailapi_1_3_1.jar;%AXIS_LIB%\activation.jar
相关文档
最新文档