`
g21121
  • 浏览: 694383 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java与webservice

 
阅读更多

前面发过一篇java调用webservice的文章,那个写的有些简单和潦草,而且只有客户端调用的例子,这里写一篇搭建服务端webservice的文章吧。

众所周知java搭建webservice服务端有很多种框架选择,例如:axis2xfirerestfuljax-ws等等很多,在这里我主要介绍用的较多的axis2xfir

 

[XFire]

 

 

xfire 官网:http://xfire.codehaus.org/

在这里你可以下载到最新的源码和工程(当然这个项目已经很多年没有更新了,Latest Release: 1.2.6 - May 3, 2007

下载完所需jar包后,打开目录:

挑几个用的着的



 

 

下面开始配置:

1.    配置web.xml 文件

添加xfireservlet

  <servlet>

       <servlet-name>xfireServlet</servlet-name>

    <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>

    </servlet>

    <servlet-mapping>

       <servlet-name>xfireServlet</servlet-name>

       <url-pattern>/service/*</url-pattern>

    </servlet-mapping>

 

 

spring结合使用,则再添加spring的配置:

 

<!-- 设置项目路径 -->

    <context-param>

       <param-name>webAppRootKey</param-name>

       <param-value>xfire.root</param-value>

    </context-param>

    <!-- spring 配置文件 -->

    <context-param>

       <param-name>contextConfigLocation</param-name>

    <param-value>classpath:applicationContext-*.xml</param-value>

    </context-param>

    <!-- spring 配置文件监听器 -->

    <listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    <!-- 字符码filter配置 -->

    <filter>

       <filter-name>encodingFilter</filter-name>

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

       <init-param>

           <param-name>encoding</param-name>

           <param-value>UTF-8</param-value>

       </init-param>

    </filter>

    <!--  字节码filter映射 -->

    <filter-mapping>

       <filter-name>encodingFilter</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

    <!-- webservice配置 -->

    <servlet>

       <servlet-name>xfire</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    </servlet>

    <servlet-mapping>

       <servlet-name>xfire</servlet-name>

       <url-pattern>/*</url-pattern>

    </servlet-mapping> 

 

 

2.    配置Xfire文件

WEB-INF下新建一个xfire-servlet.xml配置文件,这个配置文件中配置了被调用的webservice接口

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

       <property name="urlMap">

           <map>

              <!-- 暴露的调用名称, http://path/TestService?wsdl-->

              <entry key="/TestService">

                  <ref bean="testServiceXf" />

              </entry>

           </map>

       </property>

    </bean>

    <!-- 默认xfire工厂,不能删除 -->

    <bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"

       lazy-init="false" abstract="true">

       <property name="serviceFactory">

           <ref bean="xfire.serviceFactory" />

       </property>

       <property name="xfire">

           <ref bean="xfire" />

       </property>

    </bean>

    <!-- 测试service -->

    <bean id="testServiceXf" parent="baseWebService">

       <property name="serviceBean">

           <ref bean="connectionTestService" />

       </property>

       <property name="serviceClass">

           <!--  这里就是你的service了 -->

           <value>com.test.testService</value>

       </property>

    </bean>

</beans> 
 

配置文件中得map可以配置多个调用接口

3.       验证

打开浏览器输入http://path/TestService?wsdl 看是否出现了一个很长的xml配置信息,如果有则说明xfire已经配置成功。

4.       因为webservice时以xml形势传递数据的,虽然xfire会自动转型,但像List这样的复杂对象往往有些情况就会出现各种各样的错误,这时就需要帮助xfire来转换类型。

在你的service接口包内建一个与接口同名的配置文件,例如接口为TestService,则建一个TestService.aegis.xml配置文件,文件内容:

<?xml version="1.0" encoding="UTF-8"?>

<mappings>

    <mapping>

       <!-- 加载通讯录组方法,返回一个group对象 -->

       <method name="loadContactsGroup">

           <return-type componentType="com.test.Group" />

       </method>

       <!-- 加载通讯录组列表方法,返回对象是List -->

       <method name="loadContactsGroupList">

           <!-- 此处的#returnList对应下面的name值 -->

           <return-type componentType="#returnList" />

       </method>

       <!-- 返回值是List<Group>,当然你也可以配置其他的类型 -->

       <component  name ="returnList" class ="java.util.List"  componentType ="com.test.Group"  />

    </mapping>

</mappings>

 

 

 

[axis2]

现在较为流行的是使用axis2来搭建webservice服务端,axis2功能也非常强大,我也只是管中窥豹略知一二。

Axis2的官网:http://axis.apache.org/

这里就跟xfire截然不同了,axis有很多版本,而且支持很多语言,当然作为apache的项目,活跃性也是比较高的,不必担心很久都不会有人更新的尴尬局面。

1.下载下来相应的版本,挑选里面的jar包:

 

 

 

 

 

当然有你不需要的或者没加进来的自己酌情删减。

2. 配置web.xml

Axis2的配置就跟xfire类似了,都是添加一个相应的servlet

    <!-- axis配置 -->

    <servlet>

       <servlet-name>AxisServlet</servlet-name>

        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>

       <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>AxisServlet</servlet-name>

       <url-pattern>/services/*</url-pattern>

    </servlet-mapping>

 

 

 

3.创建axis2配置文件

WEB-INF下创建一个services文件夹,在此文件夹下放你需要的配置的services.xml配置文件,目录结构如下:

Test

|--META-INF

                  |--services.xml

4.servieces.xml配置

<?xml version="1.0" encoding="UTF-8"?>

 

<serviceGroup> 

    <service name="TestService"> 

       <description>通讯录webservice</description>

       <!-- ServiceObjectSupplier为装载spring bean的类,必须有--> 

       <parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringServletContextObjectSupplier</parameter> 

       <!-- SpringBeanName不可变,userServer为spring中对应的bean --> 

       <parameter name="SpringBeanName">contactsService</parameter>

       <operation name="axisTest"> 

           <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> 

       </operation> 

    </service>

</serviceGroup>  

 

 

 5.       验证:

打开浏览器输入http://path/TestService?wsdl 看是否出现了一个很长的xml配置信息,如果有则说明axis2已经配置成功。

至此所有配置都已经完成,如有不足请指出,会尽快完善。

 

  • 大小: 38.6 KB
  • 大小: 65.9 KB
  • 大小: 5.6 KB
分享到:
评论

相关推荐

    java调用webservice.zip

    java调用webservicejava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava调用webservice.zipjava...

    java 利用webservice传输文件

    在“java 利用webservice传输文件”的场景中,JACOB可能被用来执行以下任务: 1. **文件操作**:Windows系统有许多内置的COM组件,如Scripting.FileSystemObject,可用于读写文件、创建目录等。通过JACOB,Java程序...

    C#调用JavaWebService

    调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理,通过C#添加Web引用方式访问JavaWebService的方法,除了string...

    Java开发WebService实例

    在IT领域,尤其是企业级应用开发中,WebService作为一种标准化的、跨平台的服务交互方式,被广泛应用于系统间的数据交换与服务调用。本文将基于给定的“Java开发WebService实例”内容,深入解析如何在Tomcat中间件...

    java发布webservice接口

    java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在java开发过程中,很多地方都会遇到数据传递,远程获取数据问题,我这个简单的webservice接口发布可以在

    java版WebService生成客户端和服务端的实例

    4. jaxrpc.jar:Java API for XML-RPC,提供了与XML-RPC交互的API。 5. saaj.jar:SOAP with Attachments API for Java,用于处理SOAP消息中的附件。 6. wsdl4j.jar:用于解析和操作WSDL文档。 有了这些jar包,你就...

    JAVA调用webservice并解析xml

    总结,调用Java中的Web服务并解析XML涉及到了Web服务的基础概念、Java的Web服务客户端创建、XML解析技术以及实际的调用与响应处理。熟练掌握这些知识点,能够帮助开发者有效地集成和利用各种Web服务资源。

    java 调用 webService工具类

    在Java开发中,调用Web服务是常见的任务,特别是当我们需要与远程系统进行交互或集成时。本工具类主要用于简化这个过程,确保开发者能够高效、可靠地调用WebService。下面我们将详细探讨Java调用WebService的相关...

    JAVA调用WEBSERVICE接口

    JAVA调用WEBSERVICE接口

    java调用WebService实例

    Java调用WebService是一种常见的在分布式系统中实现服务交互的方式,主要应用于不同系统间的数据共享和功能集成。在Java中,有多种库可以帮助我们完成这项任务,其中之一就是Apache Axis2。本篇文章将详细介绍如何...

    java实现webservice实例.doc

    "Java实现WebService实例" WebService是基于XML的、分布式的、跨语言的应用程序通信协议。它允许不同的应用程序之间进行交互和集成,从而实现业务逻辑的复杂交互。Java是其中一种常用的实现WebService的语言。 在...

    java注解webservice学习第一篇

    在Java Web服务(WebService)开发中,注解的应用极大地简化了服务的创建和配置。本文将深入探讨如何使用Java注解来构建Web服务,并结合给出的“lib”压缩包文件,推测可能包含了一些用于支持Web服务的库文件。 ...

    java webService接口开发案例

    Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...

    java调用webservice接口案例,service调用webservice接口

    java调用webservice接口案例,精简,service调用webservice接口案例;不用生成一堆代码,逻辑清晰

    java调用json参数的webservice

    在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...

    JAVA调用WebService所需要的JAR

    在Java开发中,调用Web服务(WebService)是一项常见的任务,尤其在系统间集成和跨平台通信时。WebService是一种基于标准的、平台和语言无关的通信机制,它允许不同的应用程序之间通过HTTP进行交互。要使用Java来...

    java调用webservice实例代码

    Java调用WebService是一种常见的在Java应用中集成外部服务或与不同平台进行数据交换的技术。本实例将通过两个Web小项目,一个是客户端(Client),另一个是WebService服务器端,来阐述如何在Java中实现这一功能。 ...

    java调用webservice工程

    Java调用WebService工程是将Java应用程序与通过WebService接口提供的服务进行交互的过程。WebService是一种基于XML标准的、平台和语言无关的通信方式,它允许不同系统间的应用能够共享数据和服务。在Java中,我们...

    java 调用webservice的几种方法总结

    "Java 调用 Webservice 的几种方法总结" Java 调用 Webservice 的几种方法总结中,主要介绍了使用 JDK Web 服务 API、Axis 和 XFire 等方法来调用 Webservice。下面将对每种方法进行详细的介绍。 使用 JDK Web ...

    JAVA 调用SAP SOAP webservice.docx

    JAVA 调用 SAP SOAP webservice 详解 在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP...

Global site tag (gtag.js) - Google Analytics