`

Java中使用Aixs开发Webservice

    博客分类:
  • Java
阅读更多

  现在项目中大量应用了Webservice技术,与别的核心系统交互。之前没有用过Webservice,所以,了解下,做了个测试的例子。

  在Java中开发Webservice可以使用很多的框架,我们使用的Aixs。

     需要的包如下:

activation.jar

axis.jar

 

commons-discovery-0.2.jar

commons-logging-1.0.4.jar

jaxrpc.jar

mail.jar

saaj.jar

wsdl4j-1.5.1.jar

 

服务器端:建立接口和实现类:

接口类:

 

package server;

import java.rmi.Remote;

import com.cpic.b2bcore.externalinterface.wss.type.MusterCollectRequest;
import com.cpic.b2bcore.externalinterface.wss.type.MusterCollectResponse;

public interface ISayHello extends Remote {
	
	public MusterCollectResponse getPolicyInfo(MusterCollectRequest mrequest)throws java.rmi.RemoteException;

}

 

 实现类:

package server;

import java.rmi.RemoteException;

import com.cpic.b2bcore.externalinterface.wss.type.MusterCollectRequest;
import com.cpic.b2bcore.externalinterface.wss.type.MusterCollectResponse;

public class SayHello implements ISayHello {
	
	public MusterCollectResponse getPolicyInfo(MusterCollectRequest mrequest)
			throws RemoteException {
		// TODO Auto-generated method stub
		MusterCollectResponse mresponse = new MusterCollectResponse();
		mresponse.setPublicpolicies(null);
		return mresponse;
	}

}

 

 

 

可以看出,这里传入参数和返回参数都是自定义对象,属于较为复杂的 service。

 

需要 在web.xml 里面加入 AXIS 的配置参数。。

 

  <display-name>Apache-Axis</display-name>    
    <listener>
        <listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
    </listener>
    
  <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AxisServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AdminServlet
    </servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>SOAPMonitorService</servlet-name>
    <servlet-class>
        org.apache.axis.monitor.SOAPMonitorService
    </servlet-class>
    <init-param>
      <param-name>SOAPMonitorPort</param-name>
      <param-value>5001</param-value>
    </init-param>
    <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>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>SOAPMonitorService</servlet-name>
    <url-pattern>/SOAPMonitor</url-pattern>
  </servlet-mapping>

 <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>
	

 

 

编辑 wsdd 文件,用以生成 配置文件

 

<!-- Use this file to deploy some handlers/chains and services      -->
<!-- Two ways to do this:                                           -->
<!--   java org.apache.axis.client.AdminClient deploy.wsdd          -->
<!--      after the axis server is running                          -->
<!-- or                                                             -->
<!--   java org.apache.axis.utils.Admin client|server deploy.wsdd   -->
<!--      from the same directory that the Axis engine runs         -->

<deployment
    xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

  <!-- Services from YwxCommonService WSDL service -->

  <service name="PolicyInfoService" provider="java:RPC" style="wrapped" use="literal">
      <parameter name="className" value="server.SayHello"/>
      <parameter name="allowedMethods" value="getPolicyInfo"/>
      
      <parameter name="wsdlTargetNamespace" value="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx"/>
      <parameter name="schemaQualified" value="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx,http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx/types"/>
      
      <parameter name="wsdlServiceElement" value="PolicyInfoService"/>
      <parameter name="wsdlServicePort" value="PolicyInfoService"/>
      <parameter name="wsdlPortType" value="PolicyInfoCommService"/>
      
      <parameter name="typeMappingVersion" value="1.2"/>
      
      <operation name="getPolicyInfo" qname="operNS:getPolicyInfo" 
      xmlns:operNS="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx" 
      returnQName="retNS:musterCollectResponse" xmlns:retNS="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx" 
      returnType="rtns:MusterCollectResponse" xmlns:rtns="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx/types" soapAction="" >
        <parameter qname="pns:musterCollectRequest" xmlns:pns="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx" type="tns:MusterCollectRequest" xmlns:tns="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx/types"/>
      </operation>
      <typeMapping
        xmlns:ns="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx/types"
        qname="ns:MusterCollectRequest"
        type="java:com.cpic.b2bcore.externalinterface.wss.type.MusterCollectRequest"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle=""
      />  
      <typeMapping
        xmlns:ns="http://wss.cpic.com.cn/propertyinsurance/commonservice/ywx/types"
        qname="ns:MusterCollectResponse"
        type="java:com.cpic.b2bcore.externalinterface.wss.type.MusterCollectResponse"
        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
        encodingStyle=""
      />
  </service>
</deployment>

 

用于执行部署的批处理脚本:

 @echo off
set AXIS_HOME=D:\workspace\testServices\WebRoot\WEB-INF
rem set AXIS_HOME

cd %AXIS_HOME%
rem echo current dir=%cd%

set JAVA_HOME=D:\MyEclipse 6.5\jre

rem set JAVA_HOME

set CLASSPATH=%JAVA_HOME%\lib\tools.jar
set CLASSPATH=.;%CLASSPATH%
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\activation.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\axis.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\axis-ant.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\commons-discovery-0.2.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\commons-logging-1.0.4.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\jaxrpc.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\log4j-1.2.8.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\mail.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\saaj.jar
set CLASSPATH=%CLASSPATH%;%AXIS_HOME%\WebRoot\WEB-INF\lib\wsdl4j-1.5.1.jar
rem set CLASSPATH

set _RUNJAVA="%JAVA_HOME%\bin\java"
set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
set _RUNJDB="%JAVA_HOME%\bin\jdb"
set _RUNJAVAC="%JAVA_HOME%\bin\javac"
set OUTPUT_PATH=%AXIS_HOME%\src

echo 开始执行wsddjava...

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:8080/testServices/services/PolicyInfoService deploy.wsdd

echo ...执行wsdd  java完成
pause

 

执行该批处理文件,顺利完成后,部署成功。

 

 

客户端的生成 见另外的 一篇 博客 。。 

分享到:
评论

相关推荐

    aixs_Client_jar

    这个压缩包包含了一系列必要的库文件,使得开发者能够在Java环境中有效地使用Axis进行开发。 描述中提到的"axis生成客户端文件所需要的jar包"指的就是这些JAR文件在生成客户端代理类时起着至关重要的作用。以下是每...

    Aixs2调用SharePoint Webservice实现文件上传下载

    在IT行业中,尤其是在企业级应用开发中,常常需要与各种系统进行集成,以实现数据的交互和共享。本文将深入探讨如何使用Axis2这个Java Web服务客户端框架来调用SharePoint的Web服务,以实现文件的上传、下载以及删除...

    Aixs2相关

    虽然没有提供具体的描述,但从标签"源码 工具"我们可以推测这可能与Java编程有关,因为文件名中有".java"的扩展名,通常代表Java源代码文件。以下是对这些文件名及其可能关联的知识点的详细解释: 1. **...

    CTSS:一个综合实训选题系统,采用CS架构,客户端有PC端和Android端。使用AIXS2和KSOAP框架提供webservice服务,解决异构平台访问数据库不统一

    总的来说,CTSS是一个融合了C/S架构、WebService技术和跨平台通信策略的实训选题系统,它的设计和实现充分考虑了异构环境下的数据一致性,是Java技术在实践中的一个典型应用案例。对于学习和研究Java开发、Web服务...

    aixs2包

    在IT领域,"aixs2包"可能指的是一个专门为AIX操作系统(AIX是IBM开发的一种UNIX变体)设计的软件包。这个包可能包含了特定的功能或者服务,比如系统管理工具、性能监控模块或是针对AIX系统的优化组件。然而,"aixs2...

    axis开发使用手册

    本文将深入探讨如何使用AXIS进行Web服务开发,主要关注定制发布这一更灵活且常用的发布方式。 首先,确保你已准备好开发环境,包括JDK 1.4.2或更高版本,Myeclipse 6.0或其他集成开发环境,Tomcat 5.0.28或兼容版本...

    应用自动生成WSDL用到的aixs2 jar包

    在本场景中,我们关注的是使用Apache Axis2框架来自动创建WSDL文件,这涉及到一系列的jar包。 Apache Axis2是Java平台上一个强大的Web服务引擎,它支持SOAP、RESTful和XML-RPC等多种通信协议。它提供了一种方便的...

    aixs查询软件

    aixs查询软件

    FLUENT边界条件—SYMMETRY与aixs.pdf

    在实际应用中,选择SYMMETRY还是AXIS,或者是否使用AXISYMMETRY SWIRL,需要根据具体问题的对称性、流动特性和计算资源来决定。理解这些边界条件的差异和适用范围,能够帮助我们更有效地进行流体力学模拟,提高计算...

    axis2+hibernate+Spring测试案例

    在hibernate spring项目基础上通过aixs2-1.4.1把程序发布成webService,包括aixs2以对象数组和AXIOM方式处理map,list的程序代码;和aixs2-1.4-1的jar包

    CODESYS运动控制之如何添加实轴.docx

    在CODESYS中,实轴的控制主要通过编程实现,这通常涉及到运动控制功能块的使用。这些功能块允许编写运动控制程序,如点到点定位、连续运动、同步运动等。通过对这些功能块的调用和参数设置,可以实现对实轴的精确...

    Python中axis=0和axis=1的理解

    \quad从上述代码中,我们可以看到,data.mean(axis=1)是将data数据的行进行了求均值,而data.drop(“two”,axis=1)是按列进行了删除,那么到底axis=0和axis=1,是如何定义的呢? \quad最简单的解释就是axis=0表示跨...

    汇川 CANopen(DS402伺服运动控制)通信篇.pdf

    ### CANopen通信概览 CANopen是一种基于CAN(Controller Area Network)总线技术的高层...文档中提供的技术细节、安全指南、版本更新信息和使用手册对于理解、配置和维护基于CANopen通信的伺服驱动器网络至关重要。

    手动操纵机器人.ppt

    在单轴运动模式下,可以通过选择“Aixs 1-3”或“Aixs 4-6”分别控制机器人的一到六个关节轴进行独立旋转,这对于精细调整和定位非常有用。对于外轴运动,只能选择单轴模式,确保每个轴独立动作。 运动坐标系的选择...

    axis2 jar包

    Axis2 1.6.3 必要的jar包资源。

    关于numpy数组轴的使用详解

    按照图一中aixs=0,对aixs=0上下对应的数据进行相加在学习numpy的时候,最难理解的就是轴的概念,我们知道坐标系中有轴的概念,那么两个轴是否有关联呢?为了便于理解,特写此博客进行梳理。 正文 首先数组的维数...

    IMX6ULL-ALPHA-V2.0(底板原理图).pdf

    另外,CAN总线(CAN6_AIXS_SENSOR)用于汽车电子系统中的通信,具有高可靠性和抗干扰能力。 6. **键盘和按键**:KEY0和DS0 RED表示用户输入接口,可能是一个物理按键或触摸屏输入。 7. **蜂鸣器**:BEEPR847K连接...

    IMX6ULL-ALPHA-V2.1(底板原理图).pdf

    例如,R9和510R是电路中的电阻,用来限制电流或调整电压。 接着,LED0、LEDKEY0和KEYGNDR181K是LED指示灯和按键部分,通常用于用户交互,如系统状态指示或用户输入。BEEP则是蜂鸣器,用于发出声音提示。 在I2C2_...

Global site tag (gtag.js) - Google Analytics