java Web Service axis (實例一) server-config.wsdd生成工具
Posted on 2010-08-18 17:20 xcp 閱讀(7175) 評論(0) 編輯 收藏 所屬分類: SOA一、第一個實例
(一).服務(wù)端
1.服務(wù)類(HelloService),加入需要的幾個包
package cn.gov.luzhou.SiteServer.user.business.webService;

public class HelloService {
public String sayHello() {
return "Hello";
}

public String sayHelloToPerson(String name) {
if (name == null || name.equals("")) {
name = "nobody";
}
return "Hello " + name;
}
}
2.WEB-INF新建一個deploy.wsdd
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloServices" provider="java:RPC">
<parameter name="className" value="cn.gov.luzhou.SiteServer.user.business.webService.HelloService"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
3.Web Service有3種部署方式(Dynamic Invocation Interface ( DII),Dynamic Proxy方式 ,Stubs方式)在這我們使用Stubs方式
set Axis_Lib=D:\jar
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
%Java_Cmd% org.apache.axis.client.AdminClient -lhttp://localhost:8080/EGSS_User/services/AdminService deploy.wsdd
--->說明:d:\jar就是下載下來的axis包的jar路徑,解析的時候要用戶,將其添加到環(huán)境變量;deploy.wsdd就是部署說明文件
或者直接設(shè)置環(huán)境變量
// 環(huán)境變量設(shè)置
A. Client(Windows 2000/NT/XP)
set AXIS_HOME = c:\axis
set AXIS_LIB = %AXIS_HOME%\lib
set AXISCLASSPATH = %AXIS_LIB%\axis.jar;
%AXIS_LIB%\commons-discovery.jar;
%AXIS_LIB%\commons-logging.jar;
%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
%AXIS_LIB%\log4j-1.2.8.jar;
%AXIS_LIB%\xml-apis.jar;
%AXIS_LIB%\xercesImpl.jar
B. Server(Unix+Tomcat4.1.X)
set AXIS_HOME=/usr/axis
set AXIS_LIB=$AXIS_HOME/lib
set AXISCLASSPATH=$AXIS_LIB/axis.jar:$AXIS_LIB/commons-discovery.jar:
$AXIS_LIB/commons-logging.jar:
$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/saaj.jar:
$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/xml-apis.jar:
$AXIS_LIB/xercesImpl.jar
export AXIS_HOME;
export AXIS_LIB;
export AXISCLASSPATH
//************ =============================
// deploy service to WEB-INF/server-config.wsdd
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient
-lhttp://localhost:8080/axistest/services/AdminService
src/com/augmentum/roger/axis/svr/deploy.wsdd
b.運行:deploywebservice.bat
將會生成一個文件,我就可以通過http://localhost:8080/EGSS_User/services/HelloServices.wsdl請求查看了
(二).客戶端
package two;

import java.io.IOException;
import java.net.MalformedURLException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
*
* 測試調(diào)用WebService
*/
public class TestHelloService {
private static final Log log = LogFactory.getLog(TestHelloService.class);
private static final String HELLO_SERVICE_ENDPOINT = "http://localhost:8080/EGSS_User/services/HelloServices?wsdl";

public static void main(String[] args) {
TestHelloService tester = new TestHelloService();
tester.callSayHelloToPerson();
}

public void callSayHello() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
call.setOperationName(new QName("1.91","sayHello"));
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
String ret = (String) call.invoke(new Object[] {});
System.out.println("The return value is:" + ret);
return;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}

public void callSayHelloToPerson() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
call.setOperationName(new QName("http://webservice.sinosoft.com/","sayHelloToPerson"));
call.addParameter("name", org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
String ret = (String) call.invoke(new Object[] { "向才鵬" });
System.out.println("The return value is:" + ret);
return;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}
}
OK了
http://rogershi.blogbus.com/logs/205853.html
(一).服務(wù)端
1.服務(wù)類(HelloService),加入需要的幾個包





















a.提供一個小工具:deploywebservice.bat為了生成server-config.wsdd



或者直接設(shè)置環(huán)境變量




























b.運行:deploywebservice.bat
將會生成一個文件,我就可以通過http://localhost:8080/EGSS_User/services/HelloServices.wsdl請求查看了
(二).客戶端








































































OK了
http://rogershi.blogbus.com/logs/205853.html
名稱: ?4C.ESL | .↗Evon
口號: 遇到新問題?先要尋找一個方案乄而不是創(chuàng)造一個方案こ
mail: 聯(lián)系我