faultString: (404)Not Found ??你tomcat开了没哦?

解决方案 »

  1.   

    回:yonghar(ohno)
      开始了
      

  2.   

    楼主可以直接写server-config.wsdd文件,然后把它放到你的工程文件的WEB-INF下。
    server-config.wsdd的内容如下:
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
        <service name="sayHelloservice" provider="java:RPC">
            <parameter name="className" value="HelloWorld"/>
            <parameter name="allowedMethods" value="sayHello"/>
        </service>
    <transport name="http">
      <requestFlow>
        <handler type="URLMapper"/>
      </requestFlow>
    </transport>
    </deployment>
      

  3.   

    对于上面这个部署文件,你只需要考虑<service></service>之间的内容。其中sayHelloservice  是你的服务名称,这个名称随便起的,无所谓。<parameter name="className" value="HelloWorld"/>  这里的HelloWorld是类名,如果有包结构的话就要写名包路径,比如com.ctc.HelloWorld<parameter name="allowedMethods" value="sayHello"/>  这里的sayHello是你服务中的方法,也就是HelloWorld类中的那个sayHello()方法。其他的就没什么了!
    至于你在网上所看到的设置环境变量,我觉得这要看你的操作系统,如果是windows xp的话要设置环境变量。
    如果是其他操作系统的话,你只需要把axis安装中lib下的所有jar文件拷贝到你在tomcat下的应用文件夹下的web-inf下就可以了!还有就是使用编译器的时候,需要把那些jar文件再次引用到你的工程中,这个我想楼主应该会了吧,如果不会的话,直接和我msn联系吧[email protected]然后就是编写类了,首先是那个HelloWorld类,在jbuilder中建立这个类,如果带有包结构的话,上面的server-config.wsdd中相应的部分要做修改。写完这个类后,编译一下,然后把生成的HelloWorld.class文件拷贝到tomcat下你的应用文件夹下的web-inf下的classes下。接着就是写那个TestClient,内容如下:
    package com.ctc;
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;public class TestClient
    {
       public static void main(String [] args) throws Exception {
         String endpoint = "http://localhost:" +"8080"+ "/axis/services/sayHelloservice";
         Service  service = new Service();  
         Call call = (Call) service.createCall();
         call.setTargetEndpointAddress( new java.net.URL(endpoint) );
         call.setOperationName( "sayHello" );//注意方法名与HelloWorld.java中一样!!
         String res = (String) call.invoke( new Object[] {} 
         System.out.println( res );
       }
    }
    编译一下这个类,最后把tomcat启动一下,然后运行这个程序,输入结果是HelloWorld!
      

  4.   

    先保证你的程序编译通过
    然后按照OnlyFor_love(【20 September 1982】) 说的做。
      

  5.   

    在测试这个服务的过程中就2个类,这两个类的编译一定能通过的,除非...............
    除非出现低级错误!楼主用java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd 无疑就是想生成server-config.xml文件,在命令行下生成的话,需要设置很多环境变量,本人最讨厌的是环境变量的设置,呵呵,不过编写java程序的时候不管怎么样也要学会环境变量的设置。还是回到正题,楼主可以直接写server-config.xml这个文件,很简单的!
    按照我上面的就行了
      

  6.   

    同意,只要再添加类似下面的元素就可以了。
    <service name="Version"   "Version" 是发布后ws的名称,ws发布后的url包括这个名字。
    name="className" 元素指定了要发布成ws的类位置。
    name="allowedMethods" 是表示发布类(org.apache.axis.Version)中所有方法。    <service name="Version" type="" provider="java:RPC">
            <parameter name="className" value="org.apache.axis.Version"/>
            <parameter name="allowedMethods" value="getVersion"/>
        </service>
      

  7.   

    上面笔误了,要发布所有的方法的参数值:
    <parameter name="allowedMethods" value="*"/>而<parameter name="allowedMethods" value="getVersion"/>是只发布getVersion这个方法。