我用的是axis ,不采用eclipse自动发布webservice功能。。怎么自己手动配置.我现在把相关jar拷贝到lib下,修改web.xml添加与axis相关的配置,然后再web-inf文件夹下,新建一个server-config.wsdd<?xml version="1.0" encoding="UTF-8"?><deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="C:\eclipseworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\TestService\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service>
 
 <!-- 
 <service name="ImportGcxmda" provider="java:RPC">
 
  <parameter name="className" value="pde.web.dataaccess.service.ImportGcxmda"/>
  <parameter name="allowedMethods" value="*"/>
  <parameter name="scope" value="session"/>
 
 
 
 <service name="PublishDataService" provider="java:RPC">
  <parameter name="className" value="com.ams.services.PublishDataService"/>
  <parameter name="allowedMethods" value="*"/>
  <parameter name="scope" value="session"/>
 </service>
 
    
  
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
 
</deployment>最后访问:  http://localhost:8082/MyWeb/services/PublishDataService?wsdl
怎么会无法显示呢。。那位知道,到底如何配置啊。

解决方案 »

  1.   

    加过了。<servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-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>
      <servlet>
        <display-name>Axis Admin Servlet</display-name>
        <servlet-name>AdminServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
        <load-on-startup>100</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>AdminServlet</servlet-name>
        <url-pattern>/servlet/AdminServlet</url-pattern>
      </servlet-mapping>
      

  2.   

    没有编译wsdd文件吧,试下这个 java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:8082/MyWeb/services deploy.wsdd 
    注意把axis的jar引入
      

  3.   

    websevice没用过。想学习,不知道怎么学,各位给点建议。
      

  4.   

    你有没有在容器里安装axis2啊,安装了是否有把webservice的服务端程序(axis2建议搭乘.arr包)放到axis2/web-inf/services目录下?
    还有为啥不用eclipse插件自动生成客户端和服务端呢,呵呵
      

  5.   

    我用eclipse插件生成的服务端报异常。。
    IWAB0489E Error when deploying Web service to Axis runtime axis-admin failed with {http://schemas.xmlsoap.org/soap/envelope/}Server.userException org.xml.sax.SAXException: Processing instructions are not allowed within SOAP messages
    用的是axis 没有axis2
      

  6.   

    wsdd  先得部署,部署了才能使用。
    不清楚可以给我留言