我直接把我电脑中的所有跟axis相关的环境变量及值全部拷出来了:
变量名:AXIS_HOME
值:%TOMCAT_HOME%/webapps/axis
变量名:AXIS_LIB
值:%AXIS_HOME%/WEB-INF/lib
变量名:AXISCLASSPATH
值:%AXIS_LIB%/axis.jar;%AXIS_LIB%/axis-ant.jar;%AXIS_LIB%/axis-schema.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar; %AXIS_LIB%/activation.jar;%AXIS_LIB%/mail.jar;%AXIS_LIB%/xmlsec-1.3.0.jar;
变量名:CLASSPATH
值:.;C:/Program Files/Java/jdk1.6.0_10/lib/tool.jar;C:/Program Files/Java/jdk1.6.0_10/lib/dt.jar;%AXIS_LIB%/axis.jar;%AXIS_LIB%/axis-ant.jar;%AXIS_LIB%/axis-schema.jar;%AXIS_LIB%/commons-discovery-0.2.jar;%AXIS_LIB%/saaj-impl-1.3-SNAPSHOT-sources.jar;%AXIS_LIB%/commons-logging-1.0.4.jar;%AXIS_LIB%/jaxrpc.jar;%AXIS_LIB%/log4j-1.2.8.jar;%AXIS_LIB%/saaj.jar;%AXIS_LIB%/wsdl4j-1.5.1.jar; %AXIS_LIB%/activation.jar;%AXIS_LIB%/mail.jar;%AXIS_LIB%/xmlsec-1.3.0.jar;%AXIS_LIB%/j2ee.jar;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msbase.jar;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/mssqlserver.jar;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msutil.jar;
变量名:JAVA_HOME
值:C:/Program Files/Java/jdk1.6.0_10/bin
变量名:Path
值:%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/Program Files/Microsoft SQL Server/80/Tools/BINN;C:/Program Files/Microsoft SQL Server/90/Tools/binn/;C:/Program Files/Java/jdk1.6.0_10/bin
变量名:TOMCAT_HOME
值:C:/Program Files/Apache Software Foundation/Tomcat 5.5
服务器端:
1、根据wsdl文件生成服务器端代码,命令是:java org.apache.axis.wsdl.WSDL2Java -o server -d Session -s -S true xxx.wsdl 在server中会看到生成的代码。
2、写服务器端相关的业务逻辑类,实现接口,在XXXBindingImpl 那个类中返回相关的值,也就是业务逻辑的对像。
3、生成服务器端的class文件,方法是:project--->clean 选择要生成class文件的项目。
4、将生成的class文件copy到C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/axis/WEB-INF/classes下面
5、用命令java org.apache.axis.client.AdminClient deploy.wsdd 来部署服务器(方法是:将刚才生成的服务器端代码中的delopy.wsdd文件拷到一个目录下面,然后在命令行下运行该命令),部署成功
会有相应的提示,然后我们到Tomcat 5.0/webapps/axis/WEB-INF下会发现多了个
server-config.wsdd文件。(注意,在执行此命令前,确保tomcat5.5处于启动状态。)
5、通过http://localhost:8080/axis/下的List可以看到服务了。
客户端:
1、先导需要的包
2、通过new --->other-->Web Service Client -->指出相应的wsdl文件的位置--->finish 来生成客户端代码。
3、写个main()
一般写法:
public static void main(String[] args) {
try {
SpIsmpService service = new SpIsmpServiceLocator();
SpIsmp client=service.getSpIsmp();
WithdrawSubscriptionRequest wsr=new WithdrawSubscriptionRequest();
String authenticator="authenticator";
wsr.setAuthenticator(authenticator);
String PID="PID";
wsr.setPID(PID);
BigInteger PIDType=new BigInteger("33242");
wsr.setPIDType(PIDType);
String sequenceNo="sequenceNo";
wsr.setSequenceNo(sequenceNo);
String spId="spId";
wsr.setSpId(spId);
String srcDeviceId="srcDeviceId";
wsr.setSrcDeviceId(srcDeviceId);
Calendar timeStamp=Calendar.getInstance();
wsr.setTimeStamp(timeStamp);
String userId="userId";
wsr.setUserId(userId);
String userIdType="userIdType";
wsr.setUserIdType(userIdType);
//调用远程接口中的方法。
WithdrawSubscriptionResponse wsresponse=client.withdrawSubscription(wsr);
System.out.println(wsresponse.getResultDescription());
System.out.println(wsresponse.getSequenceNo());
System.out.println(wsresponse.getResultCode());
System.out.println(wsresponse.getTypeDesc());
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
4、ok,搞定。