环境的搭建
下载AXIS项目打包文件axis-bin-1_4.zip解压缩后将目录中的webapps目录下的axis子目录拷贝到%TOMCAT_HOME%\webapps下。
JAVA_HOME C:\Program Files\Java\jdk1.6.0_05
Path C:\Program Files\Java\jdk1.6.0_05\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN
CATALINA_HOME D:\Tomcat 6.0
AXIS_HOME D:\software\Axis\axis-bin-1_4\axis-1_4
AXIS_LIB %AXIS_HOME%\lib
AXISCLASSPATH %AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.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的安装:重新启动Tomcat服务器后打开浏览器输入网址http://localhost:8080/axis 出现欢迎界面 使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。第一个程序简单的返回HELLO WORLD!HelloWorld.javapublic class HelloWorld {
public String sayHello()
{
return "HELLO WORLD!";
}
}将HelloWorld.java拷贝到%TOMCAT_HOME%\webapps\axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下:TestClient.javaimport org.apache.axis.client.Call;
import org.apache.axis.client.Service;import javax.xml.rpc.ParameterMode;public class TestClient
{
public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服务所在位置 Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的! call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置 call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!! String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数 System.out.println( res );
}
}注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"但是我运行TestClient.java 返回的怎么总是NULL呢?
下载AXIS项目打包文件axis-bin-1_4.zip解压缩后将目录中的webapps目录下的axis子目录拷贝到%TOMCAT_HOME%\webapps下。
JAVA_HOME C:\Program Files\Java\jdk1.6.0_05
Path C:\Program Files\Java\jdk1.6.0_05\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN
CATALINA_HOME D:\Tomcat 6.0
AXIS_HOME D:\software\Axis\axis-bin-1_4\axis-1_4
AXIS_LIB %AXIS_HOME%\lib
AXISCLASSPATH %AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.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的安装:重新启动Tomcat服务器后打开浏览器输入网址http://localhost:8080/axis 出现欢迎界面 使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。第一个程序简单的返回HELLO WORLD!HelloWorld.javapublic class HelloWorld {
public String sayHello()
{
return "HELLO WORLD!";
}
}将HelloWorld.java拷贝到%TOMCAT_HOME%\webapps\axis下,然后将其改名为HelloWorld.jws,这样AXIS就自然将其发布了。现在写个客户端程序访问一下:TestClient.javaimport org.apache.axis.client.Call;
import org.apache.axis.client.Service;import javax.xml.rpc.ParameterMode;public class TestClient
{
public static void main(String [] args) throws Exception {
String endpoint = "http://localhost:" +"8080"+ "/axis/HelloWorld.jws";//指明服务所在位置 Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的! call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置 call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!! String res = (String) call.invoke( new Object[] {} );//返回String,没有传入参数 System.out.println( res );
}
}注意项目中要导入其自带的AXIS包(当然应该把其中JAR文件替换一下),可以看到程序返回了 "HELLO WORLD!"但是我运行TestClient.java 返回的怎么总是NULL呢?
解决方案 »
- 在用poi做excel导出的时候报了一个错误,应怎么解决?
- 京东接口的问题
- 你真的了解java.util.Calendar吗?来解释下。
- 调用webservices方法时传的参数大小有没有限制?
- 将一个系统嵌入到另一个系统 的问题
- js小问题 速速就来
- struts 1.2 拦截.do请求
- hibernate更新语句的问题
- 高手帮帮忙,9点以前结贴!
- 启动TOMCAT后,System.getProperty("user.dir")的路径为什么是TOMCAT目录,而不是实际的工程目录
- webservices中如何在客户端的代码中加入要进行验证的用户名和密码!谢
- 请各位老师们帮帮我javadoc怎么使用。。?
2.
在
call.setOperationName( "sayHello" );
这一句的后面加上:
call.setReturnType(XMLType.XSD_STRING);你可以参考一下我的博客里的文章。
http://localhost:8080/axis/HelloWorld.jws
然后点击页面上出现的链接。
这时服务器会在WEB-INF下建立jwsClasses文件夹,保存HelloWorld.class文件。
你点那个link的时候,出现什么样的页面?