还有将相关的class、lib考过来,比如axis的包除了这些,还需要什么呢?

解决方案 »

  1.   

    这个和平常的web部署差不多的,只不过是可能你要用到server-config.wsdd部署文件 
    就象你说的一样 只需要把这个文件放到相应的web应用文件下的web-inf下就可以了!
      

  2.   

    以下是我以前做的一个成功的例子 你参考一下吧一:需要的工具1。tomcat:    下载和安装应该不用我说了吧,呵呵!2。jbuilder:  主要是用来编写一些小程序用的,我用的是jbuilder3。下载axis的压缩包,我的是axis-1_2alpha.zip二:实例解说1。解压缩axis-1_2alpha.zip文件,我的直接解压缩在D盘,然后把把D:\axis-1_2alpha\axis-   1_2alpha\webapps下的axis文件全部拷贝到tomcat下的webapps下面。2。把解压缩文件夹下的lib里的所有jar都拷贝到%tomcat%\webapps\axis\WEB-INF下的lib里面。3。利用jbuilder,编写2个类,一个是服务类,主要是输出“helloworld”,另一个是客户端的测试程序。       在jbuilder中建立一个工程,然后把解压缩文件夹下的lib里的所有jar引用到你的工程文件中。           (1)服务类:HelloWorld.java               代码如下:public class HelloWorld                                  {
                                                public String sayHello()
                                               {
                                                         return "HELLO WORLD!";
                                                }
                                     }写完这个类后,编译一下,然后把生成的HelloWorld.class文件拷贝到tomcat下你的应用文件夹下的web-inf下的classes下。             (2)客户端测试程序TestClient.java                      代码如下: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();  //创建一个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 );
       }
    }
    4。这一步骤很关键,就是写一个server-config.wsdd文件,直接写就行了。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>
    对于上面这个部署文件,你只需要考虑<service></service>之间的内容。其中sayHelloservice  是你的服务名称,这个名称随便起的,无所谓,不过也要和TestClient.java中的String endpoint = "http://localhost:" +"8080"+ "/axis/services/sayHelloservice";中的sayHelloservice相一致。<parameter name="className" value="HelloWorld"/>  这里的HelloWorld是类名,如果有包结构的话就要写名包路径,比如com.ctc.HelloWorld<parameter name="allowedMethods" value="sayHello"/>  这里的sayHello是你服务中的方法,也就是HelloWorld类中的那个sayHello()方法。
    好了现在可以运行一下TestClient这个类了,结果很显然就是输出HelloWorld!
      

  3.   

    你还需要修改web.xml文件部署axisservlet。
      

  4.   

    在web.xml中加上下面的配置:
      <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
      </servlet-mapping>
      

  5.   

    对对对, lizzz(不是程序员)的提醒非常重要,非常重要啊