最近研究了一下WebService的用法,使用的是xfire+tomcat以及xfire+Weblogic9.2.借助于工具MyEclipse建立一个WebService是非常容易的事情,可以通过MyEclipse的File ——》New ——》Web Service Project的步骤建立一个WebService工程,如果使用Xfire的话,注意选择xfire。这样只是建立了一个WebService工程,要想生成一个服务端的框架可以通过File——》New——》Other——》Web Services ——》Web Servie,在New Web Service页面上选择已经创建好的Web Service Project.在Strategy选项选择Create Web Service from java class ,并勾选上Create new java bean,完成后在名为I**(**为你的WebService名称)中定义WebService接口,在**Impl文件中实现你的WebService逻辑。然后使用tomcat发布就可以了。
在使用Weblogic作为服务器发布的时候,和上面步骤一样,只是进行发布的时候配置一下Weblogic就行。在这个过程中可能遇到以下问题:
一,在myeclipse启动不起来Weblogic,解决:进入Weblogic目录,手动启动就行。
二,weblogic启动可能报错:
<BEA-160197>
<Unable to load
descriptor C:\bea\user_projects\domains\base_domain\.\autodeploy\demo/WEB-INF/web.xml
of module webProject. The error is weblogic.descriptor.DescriptorException:
Unmarshaller failed
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor
Caused by: com.bea.xml.XmlException: failed to load java type corresponding
to
e=web-app@http://java.sun.com/xml/ns/javaee
at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType
解决方法:
我把原来的:
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
换成:
<web-app xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">即可。原来是weblogic92不支持用eclipse自动生成2.5版本的web.xml。
再说说客户端编程,客户端也可以通过myeclipse自动生成,只要指定wsdl文件或者服务端的wsdl的URL。不但可以传递简单类型,也可以传递复杂类型。以下是客户端调用的代码示例:
public static void main(String[] args) {
MyWebServiceClient client = new MyWebServiceClient();
//create a default service endpoint
MyWebServicePortType service = client.getMyWebServiceHttpPort();
//TODO: Add custom client code here
//
//service.yourServiceOperationHere();
//调用operaiton方法
int re = service.operaiton(1900, 66, "*");
System.out.println("计算结果为:"+re);
//调用modified(User U)方法
ArrayOfUser a = new ArrayOfUser();
User u = new User();
//注意通过JAXB传递字符串型,因为绑定了JAXB,命名空间http://service.web一定要写对
JAXBElement<String> name = new JAXBElement<String>(new QName(
"http://service.web", "name"), String.class, "Mr.li");
u.setName(name);
u.setNumber(007);
//无法修改服务端设定的name和number
service.modified(u);
List<User> l = new ArrayList<User>();
a.user = l;
a.user.add(u);
//调用addUser(List<User> l)方法
ArrayOfUser li = (ArrayOfUser)service.addUser(a);
for(int i = 0; i <li.user.size();i++)
{
System.out.println(li.user.get(i).getName().getValue());
System.out.println(li.user.get(i).getNumber());
}
System.out.println("test client completed");
System.exit(0);
}
这样就完成了Webservice的建立和调用过程。
PS:WebService以我目前的理解好像不能处理传出参数,也就是我传入一个参数USer u,在服务端改变了User U的值(比如是名字和编号),客户端调用后,不能获得服务端修改的值。也就是服务端对客户端的响应内容都是通过返回值来的。如果哪位有不同见解,可以联系我,我们一起探讨。
分享到:
相关推荐
标题中的“xfire-HelloWorld.rar_webservice_webservice FPGA_xfire hellowor”提到了几个关键元素:xfire、webservice、FPGA以及一个简单的示例应用“HelloWorld”。这表明我们将探讨的是如何使用xfire这个框架来...
WebService的核心特性是其跨平台性,它允许不同操作系统和编程语言的应用程序相互通信。 2. **SOAP(Simple Object Access Protocol)**:SOAP是传输数据的一种协议,它基于XML格式,用于在Web上交换结构化和类型化...
Spring作为一个强大的框架,提供了全面的依赖注入和面向切面编程能力,而XFire是早先的Web服务实现,它允许开发者轻松地将Java接口转换为SOAP Web服务。在本教程中,我们将深入探讨如何使用Spring和XFire编写Web服务...
总的来说,学习和使用XFire,你需要理解Web服务的核心概念,熟悉Java编程,以及掌握XFire的API和配置。随着对XFire的深入应用,你可以创建高效、可扩展的Web服务解决方案,实现跨平台的系统集成。尽管现在XFire已被...
标题 "spring webService hibernate结合xfire" 描述了一个整合技术的应用,即Spring、Web服务(WebService)和Hibernate框架与Xfire的结合。在这个项目中,开发者可能想要创建一个基于Java的Web服务,该服务能够利用...
XFire通过简化编程模型和强大的注解支持,使得开发者能够快速地将Java接口转换为符合SOAP标准的Web服务。 二、Web服务基础 Web服务基于WS-I(Web Services Interoperability Organization)的标准,如SOAP(Simple ...
7. **整合Spring框架**:介绍如何利用Spring框架的依赖注入和AOP(面向切面编程)特性,与XFire结合以提高Web服务的可维护性和灵活性。 8. **测试和部署**:讲解如何测试Web服务,包括单元测试和集成测试,以及如何...
在SSH框架下实现Web服务(WebService),我们可以使用XFire库,它是一个轻量级、高性能的Web服务实现,支持SOAP和XML-RPC协议。XFire通过简化配置和API使用,使得在Java应用中创建和消费Web服务变得更加容易。 首先...
1. **Axis**:Axis是Apache软件基金会开发的开源SOAP WebService框架,它支持多种编程语言,如Java、Python等。Axis以其良好的可扩展性和广泛的支持而受到青睐。然而,一个显著的缺点是它不直接支持Spring框架,这...
xfire还提供了一个基于annotation的编程模型,使得开发者可以使用简单的Java代码来开发WebService。 xfire的主要特点包括: 1. 简单易用:xfire提供了一个简单、易于使用的API,开发者可以快速地开发和部署...
【描述】"用XFire开发WebService"意味着我们需要了解Web服务的基本概念,如WSDL(Web Service Description Language)和SOAP(Simple Object Access Protocol)。XFire提供了一个轻量级、高效的环境来构建这些服务,...
XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service,实现服务的发布和调用。下面将详细介绍如何...
总的来说,这个基于XFire的WebService项目是一个很好的学习资源,它涵盖了Web服务的基本概念、XFire的使用方法,以及如何构建和测试Web服务。对于想要深入理解Java Web服务开发的初学者或者开发者来说,这是一个值得...
标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。这可能涉及到多个方面,如编码问题、序列化错误、类型不匹配或者配置不正确等。以下是一些...
5. **多线程编程**:如果.jar包包含服务器端组件,多线程编程可能用于处理并发请求,确保高效的服务性能。 6. **Java Servlet和JavaServer Pages(JSP)**:如果Xfire提供了基于Java的Web接口,那么.jar文件可能...
XFire和JAX(Java API for XML)都是在Java环境中实现WebService的重要工具,它们分别提供了不同的方法来处理身份验证,确保数据安全传输。 XFire是早期的一个开源项目,它是一个快速、灵活的Web服务框架,支持SOAP...
- 使用XFire,你可以通过添加特定的注解(如@WebService)来标记你的类和方法,这样它们就会被识别为Web服务的操作。 - 接下来,你需要创建一个XFire实例,并配置服务端点地址。你可以通过XML配置文件或程序化方式...
WebService框架XFire是一款用于构建和消费Web服务的开源Java框架,它在早期的Web服务开发中扮演了重要角色。XFire是由Avalon项目发展而来,后来成为了CodeHaus组织的一部分,并最终演变为Apache CXF项目。理解XFire...
Web服务(WebService)是一种基于网络的、分布式的模块化组件,允许不同的应用程序在不同的操作系统和编程语言之间进行通信。在给定的标题“webservice (xfire,axis2)”中,我们关注的是两个知名的Java WebService...
Xfire采用了Java编程语言,并且充分利用了Java的XML处理库,如JAXB(Java Architecture for XML Binding)和JDOM,以提高Web服务的执行效率。 在描述中提到了Xfire与Axis的性能对比:“运行速度比Axis要快一到两倍...