`
umbrellall1
  • 浏览: 146349 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

再写一次WEBservice的例子,以及多种方式调用

 
阅读更多
部署webservice的服务端
web.xml

<!-- webservice服务端 -->
    <servlet>
        <servlet-name>cxf</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

 <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/webservice/*</url-pattern>
    </servlet-mapping>



cxf-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans.xsd
						http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
			           http://www.springframework.org/schema/context
			    	   http://www.springframework.org/schema/context/spring-context.xsd">
			    	
			    	
			    	
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 
	  <!-- 默认扫描的包路径 -->  
    <context:component-scan base-package="com.ishopping.webservice.*" />  

	<jaxws:endpoint id="helloWorld" implementor="#hello" address="/HelloWorld" />
	<jaxws:endpoint id="wsMyorder" implementor="#myorder" address="/Myorder" />

</beans>

服务器接口
package com.ishopping.webservice.service;

import javax.jws.WebMethod;
import javax.jws.WebResult;
import javax.jws.WebService;


@WebService
public interface HelloWorld {
	public String say(String name);
	public String getText();
}




服务实现类


package com.ishopping.webservice.impl;

import javax.jws.WebService;
import org.springframework.stereotype.Component;
import com.ishopping.webservice.service.HelloWorld;




@Component("hello")//这个和cxf-servlet.xml中implementor="#hello" 关联
@WebService(endpointInterface = "com.ishopping.webservice.service.HelloWorld")//接口路径
public class HelloWorldImpl implements HelloWorld{
	public TestDao testDao;

	public String say(String name) {
		
		
		return name;
	}
	
	@Override
	public String getText() {
		System.out.println("fffff");
		return "成功";
	}
	
	
}


启动服务器,如果不出意外的话将会看到这个



输入路径




然后客户端调用
第一种通过spring来调用


//读取配置文件
  ApplicationContext ctx =
   new ClassPathXmlApplicationContext("ClientBeans.xml");
  //get到接口类型并调用
  HelloWorld hello = (HelloWorld)ctx.getBean("helloClient");
  String str = hello.getText();
  System.err.println(str);



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
       xmlns:cxf="http://cxf.apache.org/core"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
 <jaxws:client id="helloClient"
    <!--服务地址-->
       address="http://www.goudzd.com:8088/goudzd/webservice/Helloworld"
     <!--客服端调用类-->
       serviceClass="com.ishopping.webservice.service.HelloWorld">
 </jaxws:client>
</beans>



注意的是HelooWorld接口必须和服务器路径一致

第二种:通过CXF调用

commons-logging-1.1.1.jar
cxf-2.3.3.jar
servlet-api.jar
wsdl4j-1.6.2.jar
XmlSchema-1.4.7.jar

需要用到的包

JaxWsProxyFactoryBean soapFactoryBean = new JaxWsProxyFactoryBean();
soapFactoryBean.setAddress("http://www.goudzd.com:8088/goudzd/webservice/HelloWorld?wsdl");
		soapFactoryBean.setServiceClass(HelloWorld.class);
		HelloWorld order =(HelloWorld) soapFactoryBean.create();
		String str = order.say("dddddddd");



注意的是HelooWorld接口必须和服务器路径一致

第三种 通过soap链接
需要用到的包

ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar




注意红框的地方




//里面地址对应上面图片的namespace
 SoapObject request = new SoapObject("http://service.webservice.ishopping.com/", "getText");
//这个是配置参数
//		  request.addProperty("Fahrenheit",txtFar.getText().toString());

		  SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
		  envelope.setOutputSoapObject(request);
		  envelope.dotNet = true;
		  try {
//对应图片上的soap:address 
              HttpTransportSE androidHttpTransport = new HttpTransportSE("http://10.0.98.19:8088/goudzd/webservice/HelloWorld");
//call的第一个参数对应图片上的soapAction=""
              androidHttpTransport.call("", envelope);
              SoapObject result = (SoapObject)envelope.bodyIn;
//这里我获取第一个数据
              System.out.println(result.getProperty(0).toString());
		  } catch (Exception e) {
              e.printStackTrace();
		  }




下面是需要的包

  • 大小: 23.6 KB
  • 大小: 64.7 KB
  • 大小: 132.4 KB
分享到:
评论

相关推荐

    camel-cxf调用和发布webservice例子

    用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口

    .net调用webservice接口例子

    本示例将详细讲解如何使用.NET来调用一个WebService接口,并提供相关的代码实例。 首先,让我们理解Web Service的基本概念。Web Service是一种基于XML(可扩展标记语言)的标准化方法,用于在不同应用程序之间共享...

    C#写winform调用webservice例子(经典)

    在本文中,我们将深入探讨如何使用C#语言在Windows Forms(WinForm)应用程序中调用Web服务,以实现一个经典的示例:获取互联网上的天气预报信息。这个例子适合于使用Visual Studio 2005或2008开发环境。 首先,让...

    WebService调用的几种方式

    本文将深入探讨在Java环境中调用WebService的五种主要方式:Axis、CXF、HttpClient、MyEclipse反向生成以及XFire。 1. Axis:Apache Axis是最早且广泛使用的SOAP库,用于创建和消费Web服务。使用Axis调用WebService...

    c# webservice简单的例子,以及调用

    Web服务是一种基于网络的、可互操作的软件接口,它允许不同系统之间的数据交换和功能调用。在C#中,创建和使用Web服务是非常常见的任务,尤其在分布式应用程序开发中。本篇将深入探讨C# Web服务的基本概念、创建过程...

    Webservice服务创建、调用,多种方式调用

    Webservice服务创建、调用,多种方式调用

    使用Http post的方式调用webservice

    当我们无法直接引用特定的jar包或者面临jar包冲突时,通过HTTP POST方式调用WebService成为了一种有效的解决方案。本文将深入探讨如何在Java环境中,利用HTTP POST方法调用WebService,并解决可能遇到的问题。 首先...

    webService(基于cxf)的完整例子

    在这个基于CXF的Web服务完整例子中,我们将深入探讨CXF的核心概念、配置、以及如何创建和调用Web服务。 1. **CXF框架介绍**:CXF,全称为"Code first eXtended Framework",最初由XFire项目发展而来,后与Apache ...

    Java调用C#的WebService例子

    Java调用C#的WebService是跨平台间通信的一种常见方式,尤其在企业级应用中,可能需要集成不同语言开发的服务。本示例介绍如何在Java环境中利用Xfire库来调用C#编写的WebService服务。 首先,理解WebService的核心...

    C#_.NET_动态调用webservice的三种方式

    C# _.NET_动态调用webservice的三种方式 在本文中,我们将讨论如何动态调用WebService的三种方式。在某些情况下,我们可能需要在程序运行期间动态调用一个未知的服务。这可以通过使用.NET Framework的System.Web....

    在Linux下通过gSOAP调用WebService例子

    代码在Linux5.6 64下编译通过,代码中调用http://www.cs.fsu.edu/~engelen/calc.wsdl提供的WebService接口。文件中相应的文件由gSOAP工具生成,详细操作说明请看我的博客。

    webservice接口调用实例

    Web服务(Web Service)是一种基于互联网的、使用标准XML(Extensible Markup Language)进行通信的软件服务,允许不同系统间的应用程序进行交互。本实例主要关注的是如何调用Web Service接口,我们将探讨相关的关键...

    一个webService例子 动态调用

    - WSDL(Web Services Description Language):定义了Web服务的接口,描述了服务的位置以及如何调用这些服务。 - SOAP(Simple Object Access Protocol):用于交换结构化和类型化的信息,是Web服务的主要消息...

    较完整的webservice例子

    通过这个“较完整的Webservice例子”,开发者可以学习到Web Service的基本概念,XFire框架的使用,以及如何在实际项目中构建和调用Web Service。同时,对于源码的分析和调试,将进一步加深对Web Service原理的理解。

    WebService服务的三种调用方式

    ### WebService服务的三种调用方式 在现代软件开发中,WebService作为一种标准的服务提供机制,在分布式系统中的应用非常广泛。本文将详细介绍基于SOAP协议的远程WebService服务的三种常见调用方式,帮助开发者根据...

    Delphi调用webservice例子

    在IT行业中,开发人员经常需要在不同的系统之间交换数据和服务,这时Web Service就扮演了重要的角色。本示例聚焦于如何使用...随着经验的积累,开发者还可以学习更高级的主题,如异步调用、安全性处理以及优化性能等。

    在WinForm程序中调用WebService

    在WinForm应用程序中调用WebService是一项常见的任务,它允许客户端应用程序与远程服务器上的服务进行交互,从而实现数据交换和功能扩展。以下是如何在WinForm中实现这一操作的详细步骤及涉及的相关知识点: 1. **...

    VC++中WebService服务的调用

    在VC++中调用WebService服务是一项常见的任务,尤其在跨平台通信、系统集成或扩展应用程序功能时。WebService是一种基于Web的、松耦合的服务,它使用标准的HTTP协议进行通信,并通过XML(eXtensible Markup Language...

    超简单的webservice调用

    【标题】"超简单的webservice调用"涉及的是在Java环境下使用Hutool库进行Web Service接口调用的基础知识。Web Service是一种基于网络的、松散耦合的软件组件交互方式,它允许不同系统间的应用共享数据和服务。在这个...

Global site tag (gtag.js) - Google Analytics