`
qingfeng200468
  • 浏览: 51991 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

webservice 入门例子 源代码

阅读更多

     最近准备考试:将webservice 充充电,本想配置一遍,在网上资料,资源虽多,没有几个能成功的,还没有几个有原代码的,可能是自己理解能力有限,摸索了一段时间,终于调通了webservice !

    在此为想学习webservice同仁们提供一个入门例子

 

 1、新建一个web project,如下面的例子为Storm

 2、在工程中目录如下图所示

 

Storm.
│  .classpath
│  .project
│  index.html
│  tree.txt
│  
├─.settings
│      com.spket.js.prefs
│      org.eclipse.core.resources.prefs
│      
├─src
│  └─com
│      │  TestDWR.java
│      │  TestWebService.java
│      │  
│      └─service
│              HelloWorld.java
│              
└─WEB-INF
    │  server-config.wsdd
    │  web.xml
    │  
    ├─attachments
    ├─classes
    │  └─com
    │      │  TestDWR.class
    │      │  TestWebService.class
    │      │  
    │      └─service
    │              HelloWorld.class
    │              
    └─lib
            axis-ant.jar
            axis.jar
            commons-discovery-0.2.jar
            commons-logging-1.0.4.jar
            jaxrpc.jar
            log4j-1.2.8.jar
            saaj.jar
            wsdl4j-1.5.1.jar

3、编写java类

public class HelloWorld {

	private String name = "qingfeng";
	
	public String getName(){
		return name;
	}
	public String hiHello(String name)
	{
		return "Hi:" + name;
	}
}
 

4、修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app  xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

    <servlet>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

 5、修改 server-config.wsdd文件,与web.xml同一级目录,内容如下,在别面拷贝一个,修改自己类及方法

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

<globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
</globalConfiguration>

  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>  
  
   <service name="hello" provider="java:RPC"> 
      <parameter name="className" value="com.service.HelloWorld" /> 
      <parameter name="allowedMethods" value="*" /> 
   </service> 
  
   <service name="test" provider="java:RPC"> 
      <parameter name="className" value="com.TestDWR" /> 
      <parameter name="allowedMethods" value="*" /> 
   </service>  
   
  <transport name="http">  
     <requestFlow>  
        <handler type="URLMapper"/>  
     </requestFlow>  
  </transport>  
</deployment>

6、将相关的jar加上,如上述目录所示,将工程布置到tomcat中,

7、访问发布的路径,如我本地为:http://localhost:8080/Storm/services

8、若在IE中,看到如下所示,就表明成功了

 

And now... Some Services

hello (wsdl)

  • helloName
  • getName

test  (wsdl)

  • getAge

9、下面我们再写一个测试类,提供外界访问,在工程目录中com.TestWebService类,代码如下所示

package com;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class TestWebService {

	public static void test2() {
		String url = "http://localhost:8080/Storm/services/hello";
		Service service = new Service();
		Call call;
		String name = "东东和范范";
		try {
			call = (Call) service.createCall();
			call.setTargetEndpointAddress(new java.net.URL(url));
			call.setOperationName("helloName");
			String res = (String) call.invoke(new Object[] { name });
			System.out.println(res);
		} catch (ServiceException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		test2();
	}

}

 10、在控制台输出【hello:东东和范范】表明成功。

 11、附上整个项目源代码

 

  • Storm.rar (2 MB)
  • 描述: webservice入门工程
  • 下载次数: 913
分享到:
评论
14 楼 josico 2014-04-14  
jackra 写道
josico 写道
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....


前段操作及展示用java,后台用C,很正常吧,很多公司都这样啊。
“哪个公司会分几个不同的语言开发一个应用”,我想问,哪个公司开发一个应用只用一种语言?


首先,请看发帖时间!!!!所谓的前台java后台c,应该是说的移动API吧?11年的时候这是神马情况不知阁下知否?

其次,公司的前后台语言或团队的前后台语言必须要统一,否则会出现项目失控。此处并非只是一种语言,而是一组语言体系。

最后,为何要挖坟?这帖子太老了!

谈不上挖坟 我只是看到了就回复 我没想到这贴已经过去这么久了 这得问第一个挖坟的
还有就是前台JAVA后台C 并不是局限于移动APP啊 我说的鲜活的例子 就是我现在在的这家公司 做BOSS系统 很多与钱相关的 都是C写的
我所说的前台 也并不只是前台页面 在我们公司 JAVA统称前台 C统称后台 和那些广义的前台后台不一样
如果真的挖坟了 那不好意思 我确实是不知道这贴已经这么久了 我只是看到了 随意说一下
13 楼 jackra 2014-04-08  
josico 写道
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....


前段操作及展示用java,后台用C,很正常吧,很多公司都这样啊。
“哪个公司会分几个不同的语言开发一个应用”,我想问,哪个公司开发一个应用只用一种语言?


首先,请看发帖时间!!!!所谓的前台java后台c,应该是说的移动API吧?11年的时候这是神马情况不知阁下知否?

其次,公司的前后台语言或团队的前后台语言必须要统一,否则会出现项目失控。此处并非只是一种语言,而是一组语言体系。

最后,为何要挖坟?这帖子太老了!
12 楼 josico 2014-03-27  
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....


前段操作及展示用java,后台用C,很正常吧,很多公司都这样啊。
“哪个公司会分几个不同的语言开发一个应用”,我想问,哪个公司开发一个应用只用一种语言?
11 楼 dwbin 2012-05-25  
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....


有种架构叫做SOA。。。。。。。
10 楼 tonjava 2012-05-25  
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....


在跨系统webserivce是首选,却被你这样鄙视,我不得不说这是你的悲哀,据我所知我在中国移动项目和物流项目几个大型项目中都用到了webservice 。既然存在就有存在的道理。。。。。。。。
9 楼 Jazag.van 2011-03-25  
恩,刚好需要入门一下ws,我看J2EE标准中WS相关的技术很多,似乎是J2EE标准下实现WS有很多种方式?
8 楼 zhzhy86 2011-03-25  
个人还是比较推崇restful架构
7 楼 mqlfly2008 2011-03-25  
webservice在系统对接方面用很多的!虽然很多人用httpClient,但webService还是很多人用,而且是个标准
6 楼 zhaoshun0417 2011-03-25  
    这只是入门的程序,一般都是自动生成客服端的。而且楼主配置少了些。远程调用会出错的,本地还行。webservice还是有他的用处的,并非“鸡肋”。
5 楼 teacher1998 2011-03-25  
正好我要,先谢加mark再看
4 楼 yangleilt 2011-03-25  
webservice 是这样写的吗?
3 楼 tterry 2011-03-25  
jackra 写道
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....



webservice鸡肋?
  异构系统中webservice是首选,却被您这样鄙视  。感觉您有装X的意思
2 楼 jackra 2011-03-25  
webservice这个东西
比较鸡肋
尤其是相关的CXF和AXI的资料很缺乏

另外考虑webservice的应用场景,如果只是在java内部互相调用,实在是没有什么意义.而与其他语言编写的service之间相互调用似乎对于现在的企业而言又不太现实,哪个公司会分几个不同基础语言部门协同开发一个应用呢?而如果通过web来访问,在浏览器方面又没有相应的封包和解包api实在是鸡肋啊.....
1 楼 dwbin 2011-03-25  
wsdl还有一种比较简单的发布方式,就是类不要包名,直接放在根目录下面,然后使用/Contxtpath/className/methodName进行访问就行了。
多谢楼主分享

相关推荐

    MyEclipse.6.实战开发讲解视频入门_源代码 8_WebService.zip

    实战开发讲解视频入门_源代码 8_WebService.zip" 描述了这是一套视频教程,专门针对初学者,旨在引导他们掌握如何在MyEclipse 6.0中创建和使用WebService。源代码部分则包含了两个关键文件,帮助学习者理解和实践...

    webservice 入门实例

    通常,这些文件可能包括Java源代码(如果使用Java来实现)、WSDL文件、部署描述符(如web.xml)以及测试客户端。开发者通常会定义一个服务接口,并实现这个接口,然后通过工具或手动编写WSDL文件来描述这个服务。...

    webservice入门实例

    ### WebService 入门实例详解 #### 一、概述 本文档主要介绍如何将WebService整合到现有的项目中,尤其适用于那些当前还没有Web服务接口的项目。通过本教程,您将学习到如何创建一个简单的WebService,并将其成功...

    CXF3.0.2+Spring3.2.14 WebService入门实例四

    【CXF3.0.2+Spring3.2.14 WebService入门实例四】的知识点解析 在本文中,我们将深入探讨如何使用Apache CXF 3.0.2版本和Spring 3.2.14框架来创建一个基于WebService的文件传输应用。Apache CXF是一个流行的开源...

    Jbuilder开发WebService入门

    **Jbuilder开发WebService入门** Java Web Service(简称WebService)是一种基于标准协议的,可以在不同操作系统、不同编程语言之间进行通信的网络服务。Jbuilder作为早期的Java集成开发环境,提供了强大的支持来...

    webservice新手入门实例

    "webService"文件可能是服务端的源代码或者测试客户端的代码,供你参考和实践。 通过这个实例,你可以动手实践创建、部署和调用Web Service,加深对Web Service工作原理的理解。记得在实践中不断探索和学习,遇到...

    webservice开发入门例子

    6. 示例中的"WS"可能是指Web服务的实例,或者是一个特定的文件夹,包含Web服务相关的源代码、配置文件或编译后的类文件。文件内容可能包括Java源代码、WSDL文档、部署描述符(web.xml)等。 7. 在实际开发中,我们...

    c#入门源代码

    (1)实例源代码 第3章:【例3-1】启动界面;【例3-2】简单的计算器;【例3-3】MouseDown事件中处理鼠标左键单击或者右键单击事件示例;【例3-4】MouseMove事件以及参数的用法示例。 第4章:【例4-2】个人资料填写...

    Flex从入门到精通源代码

    这个压缩包“Flex从入门到精通源代码”显然是针对初学者或者想要深入理解Flex技术的开发者设计的,包含书中示例的源代码,帮助读者更好地理解和实践Flex编程。 在《Flex从入门到精通》这本书中,作者可能涵盖了以下...

    WebService入门

    【WebService入门】 WebService是一种基于Web的、松散耦合的、标准化的接口技术,它允许不同的应用程序和服务之间进行交互。这项技术的核心是通过XML(可扩展标记语言)和WSDL(Web服务描述语言)来定义和交换数据,...

    Axis-Webservice入门

    标签“源码”意味着该教程可能涉及到阅读和理解Axis2相关的Java源代码,这对于深入理解其工作原理和进行自定义扩展非常有帮助。“工具”则暗示可能会介绍一些辅助开发的工具,比如代码生成器、调试器或者集成开发...

    axis调用webservice实例,包含jar包

    Apache Axis是一个开放源代码的SOAP栈,它允许开发者创建和部署Web服务,同时也提供了客户端工具来调用这些服务。在这个实例中,Axis作为客户端工具,用于与Web服务交互。 首先,我们要理解Web服务的基本概念。Web...

    鼎捷ERP Tiptop T100/GP Webservice开发详细步骤 完整例子有4GL源代码 结合安卓开发实现APP功能

    1、客制好接口程序,编译自己写的程序(以下有登陆的接口的例子) 2、在aws_ttsr v2_ser vice.4gl里添加服务名称 3、在aws_ttsr v2的link里添加新写的端口程序 4、在aws_ttcfg2(集成服务SERVER端设置作业)里维护 5、...

    Flex从入门到实践——源代码(15,16,17章)

    这个压缩包文件包含的源代码可能是对《Flex从入门到实践》这本书的第15、16和17章的学习示例,旨在帮助读者通过实际操作来加深对Flex的理解。 1. Flex基础概念 - Flex是一个开放源代码的框架,用于构建跨平台的...

    五分钟用Flex构建WebService应用

    在MXML代码中,你可以定义一个HTTPService实例,设置其URL指向WebService的地址,并配置请求方法(GET或POST)以及发送的数据格式。 接下来,我们将学习如何配置Flex项目以连接.NET的WebService。首先,你需要在...

    PHP从入门到精通.pdf-入门教程.CHM

    《PHP从入门到精通》所配DVD光盘含有全程语音视频讲解教学录像以及实例的全部源代码,这些源代码都经过精心调试,在WindowsXP、Windows2000、Windows2003下全部通过。谢谢,www.liwuguo.com 支持整理。《PHP从入门到...

    cxf 实现的webservice例子demo

    3. **服务接口和服务实现**:在源代码中,定义了一个Web服务接口,通常使用JAX-WS的`@WebService`注解标记。接口的实现类提供了具体的服务逻辑,实现了接口中声明的方法。 4. **服务发布**:CXF使用Spring框架来...

    调用WebService与后台数据交互示例

    根据描述,文档提供了详细的步骤和源代码,可能包括以下部分: 1. WebService的创建:展示如何使用特定技术(如Java的JAX-WS,ASP.NET的SOAP WebService等)创建一个可以与数据库交互的服务。 2. 客户端调用:包含...

    HelloWorld WebService Server

    "HelloWorld WebService Server" 是一个入门级的示例,旨在帮助初学者理解Web服务的工作原理,特别是服务器端的部分。在这个项目中,我们将深入探讨Web服务的概念、工作流程以及如何创建一个简单的 HelloWorld ...

    cxf入门例子

    "ws"可能包含了服务端的部署文件、Java源代码和WSDL描述,而"wsClient"则可能包含了客户端的代理类和配置文件。这些文件可以用来运行和测试例子。 总结,这个“cxf入门例子”展示了如何使用Apache CXF进行基础的Web...

Global site tag (gtag.js) - Google Analytics