1.在你的axis包中的一个servlet,当前访问后缀为.jws的URL时就会调用这个servlet,然后生成WSDL文件,这个servlet需要在web.xml中配置,但是当你要部署带有包名的clsss为web service时的时候就要用到server-config.wsdd文件,这个文件在axis的jar包中的,可以拷过来然后修改一下就行了.
2. jws部署web service是不支持包名的.
3. 客户端当然是调用class文件,axis会替你自动编译这个jws文件,然后在classes目录下会有相应的clsss文件.
4. 第四个问题暂时没试过,只用java调过,但应该也很简单,只要知道WSDL文件后,理论上任何语言都可以调用.

解决方案 »

  1.   

    谢谢hj821003(java老百姓) 的回复.您不是说不支持包的吗?为什么还说部署带有包名的clsss为web  service时的时候就要用到server-config.wsdd文件?有点前后矛盾还有领导让我写好其他系统调用JAVA写的WSDL的步骤...
    有谁知道啊?
      

  2.   

    1.jws不需要配置 server-config.wsdd
    2.需要用包 就用第二种方法 配置server-config.wsdd
    下面有个例子:或者对你有用
    ======================
    HelloWorld.javapackage anni;
    public class HelloWorld {
        public String sayHello() {
            return "hello world!";
        }
    }
    把HelloWorld.java编译成HelloWorld.class,放到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes目录下,因为定义了anni作为包名,实际的路径是%TOMCAT_HOME%\webapps\axis\WEB-INF\classes\anni\HelloWorld.classdeploy_1.wsdd<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
        <service name="HelloWorld" provider="java:RPC">
            <parameter name="className" value="anni.HelloWorld"/>
            <parameter name="allowedMethods" value="sayHello"/>
        </service>
    </deployment>
    根据deploy_1.wsdd发布HelloWorldjava -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/ deploy_1.wsdd
    %TOMCAT_HOME%\webapps\axis\WEB-INF\目录下会生成一个server-config.wsdd文件,这就是AXIS的配置文件,以后所有的服务发布描述都会在里面找到。(你可以直接修改它,不用再写deploy.wsdd)然后打开浏览器http://localhost:8080/axis/servlet/AxisServlet,可以看到所有发布的服务。=========================3.直接调用?通过工具类根据wsdl生成客户端的类 然后在调用。
    4.不同的语言理论上是可以的 但是在实际使用过程中 还是会有点问题 主要 是类型的描述上
      

  3.   

    调用的时候是不是就是通过XML读的操作啊?
      

  4.   

    别去研究jws,没什么意思的。。要把soap和wsdl搞清楚才是硬道理!
      

  5.   

    4、相关的开发工具会提供根据wsdl文件生成其对应的接口代码功能,不同平台的WSDL会有所差异
      

  6.   

    扔掉axis,改用axis2,或jaxws,xfire。
      

  7.   

    通常自己编写server-config.wsdd