Weblogic11g+Axis1.4 实现WebService服务

IDE:NetBeans8.0

项目结构:

(1)新建接口Hello.java

package com.test;

/**
 * @author  y
 * @date    2015-9-5 7:51:29
 * @version 1.0
 * @desc    
 */
public interface Hello {

    String sayHello(String name);
}

(2)新建实现类HelloManager.java

package com.test;

/**
 * @author  y
 * @date    2015-9-5 7:51:59
 * @version V1.0
 * @desc    
 */
public class HelloManager implements Hello{

    public String sayHello(String name) {
        return "Hello,"+name;
    }

}

(3)配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <listener>
        <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
    </listener>
    
  <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>
    <servlet-name>AdminServlet</servlet-name>
    <display-name>Axis Admin Servlet</display-name>
    <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
  </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>
    <!--/services/*-->
    <url-pattern>/*</url-pattern>
  </servlet-mapping>



    <session-config>
        <!-- Default to 5 minute session timeouts -->
        <session-timeout>5</session-timeout>
    </session-config>

    <!-- currently the W3C havent settled on a media type for WSDL;
    http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
    for now we go with the basic 'it's XML' response -->
  <mime-mapping>
    <extension>wsdl</extension>
     <mime-type>text/xml</mime-type>
  </mime-mapping>
  

  <mime-mapping>
    <extension>xsd</extension>
    <mime-type>text/xml</mime-type>
  </mime-mapping>

  <welcome-file-list id="WelcomeFileList">
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jws</welcome-file>
  </welcome-file-list>

</web-app>

(4)新建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">
    <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>     
    
    <service name="HelloManagerServices" provider="java:RPC"> 
        <parameter name="className" value="com.test.HelloManager"/>
        <parameter name="allowedMethods" value="*"/>
    </service>
    
    <transport name="http">
        <requestFlow>
            <handler type="URLMapper"/>
        </requestFlow>
    </transport>
</deployment>

成功部署之后访问:http://localhost:7001/ws01/HelloManagerServices?wsdl

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:7001/ws01/HelloManagerServices" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:7001/ws01/HelloManagerServices" xmlns:intf="http://localhost:7001/ws01/HelloManagerServices" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->

   <wsdl:message name="sayHelloRequest">

      <wsdl:part name="name" type="soapenc:string"/>

   </wsdl:message>

   <wsdl:message name="sayHelloResponse">

      <wsdl:part name="sayHelloReturn" type="soapenc:string"/>

   </wsdl:message>

   <wsdl:portType name="HelloManager">

      <wsdl:operation name="sayHello" parameterOrder="name">

         <wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"/>

         <wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="HelloManagerServicesSoapBinding" type="impl:HelloManager">

      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="sayHello">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="sayHelloRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://test.com" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="sayHelloResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:7001/ws01/HelloManagerServices" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="HelloManagerService">

      <wsdl:port binding="impl:HelloManagerServicesSoapBinding" name="HelloManagerServices">

         <wsdlsoap:address location="http://localhost:7001/ws01/HelloManagerServices"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

 

客户端测试:

public static void main(String[] args) throws Exception {
        String namespace="http://test.com";
        String method="sayHello";
        String wsdl="http://localhost:7001/ws01/HelloManagerServices";
        Object[] params={"yshyee"};
        String result = AxisInvokeJAXWSUtil.invoke(namespace, method, wsdl, params);
        System.out.println("=======result:"+result);
    }
AxisInvokeJAXWSUtil.java
public final class AxisInvokeJAXWSUtil {
    /**
     * 
     * @param namespace
     * @param method
     * @param wsdl
     * @param params
     * @return
     * @throws Exception 
     */
    public static String invoke(String namespace, String method, String wsdl, Object[] params) throws Exception{
        Object obj;

        Service service = new Service();

        Call call = (Call) service.createCall();
        call.setOperationName(new QName(namespace, method));
        call.setTargetEndpointAddress(wsdl);
        
        if (null != params) {
            int len = params.length;
            
            for (int i = 0; i < len; i++) {
                //动态设置参数,而且参数类为字符串类型
                call.addParameter("arg" + i, XMLType.XSD_STRING, ParameterMode.IN);
            }
            
            if (len > 0) {
                //设置返回值类型为字符串类型
                call.setReturnType(XMLType.XSD_STRING);
            }
        } else {
            params = new Object[]{};
        }
        
        obj = call.invoke(params);
        
        return obj == null ? "" : obj.toString();
    }
    
}

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值