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();
    }

}
 
时间: 2024-12-26 03:22:01

Weblogic11g+Axis1.4 实现WebService服务的相关文章

基于Axis1.4的webservice接口开发(代码开发)

一.开发环境: 我的开发环境是MyEclipse 2015+Apache-Tomcat-8.0.21. 二.代码开发: 1.新建一个Web Project工程,并导入jar包(Axis1.4的环境搭建在上一篇博客http://www.cnblogs.com/zhukunqiang/p/7124977.html中有介绍): 1.在com.ll.server包下新建java类,工程结构目录如下: 2.java代码如下(由于该项目用于测试,简单点无所谓): package com.ll.server;

cxf3.x +spring 3.x(4.x)+ maven 发布webservice 服务

cxf 在做企业级webservices 服务的时候确实非常好用,个人觉得比axis1, 2都好用. 虽然spring自身也提供了webservices发布方法,这里使用cxf跟spring结合,使用起来非常方便: 整体项目结果如下: 基于maven 来配置使得项目更加简单 新建一个maven 项目,补全 src下的main和test目录 打开web.xml <?xml version="1.0" encoding="UTF-8"?> <web-a

自定义及发布一个webservice服务

自定义及发布一个webservice服务    - 声明 某个业务服务为webservice服务       通过@webservice 注解来声明    - 发布webservice服务       Endpoint.publish()发布 (默认对public修饰的方法进行发布)    - 通过wsimport生成本地代理来访问自己发布的webservice       wsimport 1.发布自定义webservice phone.java package ws.myWebService

一个简单的WebService服务

现在,网上提供的免费的webservice服务的网站: http://www.webxml.com.cn/ 从扩展名上看,是 .net构建的网站. 看看功能的实现效果: 需求:我们要远程调用手机号归属地的查询: 开发步骤: 1.建立工程:ws01_firstws 2.用jdk自带的工具读取wsdl地址 新建 结果输出: 根据远程的服务生成的这些内容称之为stub-桩,将生成的桩复制到项目的目录中去: 下一步:要编写客户端调用. public class FirstClient { public

WebService学习总结(四)——调用第三方提供的webService服务

WebService学习总结(四)——调用第三方提供的webService服务 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明. 气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client).一. 调用

spring+resteasy开发webservice服务

有一段时间没有更新博客,主要是最近一段时间自己比较迷茫,一直在思考自己以后的路该怎么走.希望大家也可以给我一些建议,谢谢!好了,回归正题,今天给大家带来的是spring+resteay开发webservice服务,不知道大家是否在这之前接触过webservice,我之前所了解的webservice是使用cxf还有axis2开发的,但是我觉得实现起来比较麻烦,而且不灵活,今天给大家介绍一种比较灵活的提供webservice服务的技术:resteasy.下面我重点讲解的resteasy常用的一些知识

PHP写webservice服务端

1) WebService技术介绍 WebService是一种跨编程语言和跨操作系统平台的远程调用技术.仅仅有通过Web Service,client和server才可以自由的用HTTP进行通信.不论两个程序的平台和变成语言是什么. XML.SOAP和WSDL是Web Service平台的三大技术: WebService採用HTTP协议数据传输.採用XML格式封装数据,即XML中说明调用远程服务对象的哪个方法.传递的參数是什么.以及服务对象的返回结果是什么. XML是WebService平台中表

WebService学习总结(4)——第三方webService服务调用

互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为例进行说明. 气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client). 一. 调用免费的web service获取天气预报信息 1.1.找到提供天气预报信息的W

ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器

ASP.NET MVC 中应用Windows服务以及Webservice服务开发分布式定时器一:闲谈一下:1.现在任务跟踪管理系统已经开发快要结束了,抽一点时间来写一下,想一想自己就有成就感啊!!  2.关于任务跟踪管理系统项目中遇到的Windows服务以及Webservice的综合应用的问题. 大家好这是我第二次写博客 ,写的不好请大家多多谅解, 希望大家可以多多指正. 二:我稍微的整理了一下关于这个分布式定时器需求:1.根据任务跟踪管理系统中的数据库的AnswerSheet 表格中找到客户编