环境的搭建
下载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呢?

解决方案 »

  1.   

    1.据我的理解,把文件copy到AXIS下后,还要去访问它,并点击得到的链接,服务器才会编译这个jws。
    2.

    call.setOperationName( "sayHello" );
    这一句的后面加上:
    call.setReturnType(XMLType.XSD_STRING);你可以参考一下我的博客里的文章。
      

  2.   

    按照你的环境的话,应该是访问:
    http://localhost:8080/axis/HelloWorld.jws
    然后点击页面上出现的链接。
    这时服务器会在WEB-INF下建立jwsClasses文件夹,保存HelloWorld.class文件。
      

  3.   

    你把HelloWorld的包去掉了么?我是说,这个文件不能在任何包下。
    你点那个link的时候,出现什么样的页面?
      

  4.   

    http://localhost:8080/axis/services/HelloWorld.wsdl