Jboss5.1.0GA 中运行CXF2.6.6发布webservice问题总结

合集下载

webservice函数用法

webservice函数用法

webservice函数是一种常用的网络服务接口,用于实现不同系统或评台之间的数据交换和通信。

它可以帮助开发人员轻松地通过网络调用远程的服务程序,并在不同的评台上进行数据交换和通信。

本文将对webservice函数的用法进行详细介绍,希望能够对相关开发人员有所帮助。

一、webservice函数的定义webservice函数是一种基于网络的服务接口,它使用标准的HTTP协议进行数据传输,通常通过SOAP(Simple Object Access Protocol)来进行数据的封装和传输。

开发人员可以通过webservice函数轻松地将自己的程序封装成一个web服务,并通过网络对外提供服务。

二、webservice函数的语法在大多数的编程语言中,webservice函数的语法都比较相似。

例如在Java语言中,可以通过JAX-WS或JAX-RPC等方式来实现webservice函数。

在.NET评台中,可以使用来实现webservice函数。

一般来说,webservice函数的语法包括以下几个方面:1. 定义webservice函数的接口2. 实现webservice函数的具体功能3. 部署webservice函数到服务器上三、webservice函数的用法使用webservice函数可以让开发人员轻松地实现不同系统之间的数据交换和通信,下面将介绍webservice函数的常用用法。

1. 定义webservice函数的接口在实际开发中,首先需要定义webservice函数的接口,即需要确定需要提供哪些服务。

开发人员可以根据实际需求,定义出webservice函数的各种接口,包括输入参数和返回值等。

2. 实现webservice函数的具体功能一旦确定了webservice函数的接口,接下来就需要实现具体的功能。

开发人员可以根据接口的定义,编写相应的代码来实现webservice函数的功能。

在实现的过程中,需要考虑数据的安全性和可靠性等问题。

cxf+spring发布webservice接口及接口的调用

cxf+spring发布webservice接口及接口的调用

一、CXF介绍Apache CXF=Celtix+XFire,Apache CXF的前身叫Apache CeltiXfire。

CXF继承了Celtix和XFire两大开源项目的精华,提供了对JAX-WS全面的支持,并且提供了多种Binding、DataBinding、Transport以及各种Format的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者WSDL优先(WSDL First)来轻松地实现Web Services的发布和使用。

Apache CXF已经是一个正式的Apache顶级项目。

CXF支持多种协议,如:SOAP、XML/HTTP、RESTful HTTP、CORBA,并且可以在多种传输协议上运行,比如:HTTP、JMS、JBI。

CXF可以与Spring进行无缝集成。

CXF框架是一种基于Servlet技术的SOA应用开发框架,要正常运行基于CXF应用框架开发的企业应用,除了CXF框架本身之外,还需要JDK和Servlet容器的支持。

CXF下载地址:/download.html,选择“File”列中的zip格式下载。

解压后可以看到一些文件夹:└─apache-cxf-2.5.0├─bin各种工具├─docs API文档├─etc各种配置文件├─lib开发所需jar包├─licenses说明├─modules jar包└─samples使用例子samples文件夹中给提供了在各种环境下使用的例子,个人感觉只需参照样例即可。

二、使用CXF+Spring编写并发布WebService首先,新建一个Web项目,名字叫cxftest,将下载的压缩包中lib文件夹下的jar包全部拷贝到项目的WEB-INF/lib中,在web.xml中配置如下:[html]view plaincopy1.<servlet>2.<servlet-name>CXFServlet</servlet-name>3.<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>4.<load-on-startup>1</load-on-startup>5.</servlet>6.<servlet-mapping>7.<servlet-name>CXFServlet</servlet-name>8.<url-pattern>/services/*</url-pattern>9.</servlet-mapping>然后,在项目src目录下新建包:com.test,在新建的包中创建TestService.java,代码如下:[java]view plaincopy1.package com.test;2.3.import javax.jws.WebService;4.5.@WebService6.public interface TestService{7.8.public String sayHi(String name);9.10.}接着,在创建TestServiceImpl.java,代码如下:[java]view plaincopy1.package com.test;2.3.import javax.jws.WebService;4.5.@WebService(endpointInterface="com.test.TestService")6.public class TestServiceImpl implements TestService{7.8.public String sayHi(String name){9.10.return name+",welcome to here!";11.}12.}CXF中采用注解的方式声明哪些类作为WebService进行发布,@WebService:声明webservice接口;@WebService(endpointInterface="com.test.TestService"):声明这个类是TestService接口的实现类。

webservice五种发布方式及客户端调用

webservice五种发布方式及客户端调用

WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6。

1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6。

2。

jar”报错,报的错为:ng。

IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。

该问题在此处做个记录,以后使用cxf与was的时候需要注意!!!使用cxf+spring搭建WebService:第一步,添加jar包。

此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。

根据错误提示缺什么补什么就可以了,注意jar包勿重复.第二步,配置web.xml文件,如下(重要的地方已标记):〈context—param>〈param-name>contextConfigLocation〈/param—name〉<param-value〉classpath:/applicationContext.xml</param-value〉</context—param>〈listener〉<listener—class〉org.springframework.web。

context。

ContextLoaderListener〈/listener—class〉</listener〉〈!—- Character Encoding filter --〉<filter〉〈filter—name〉encodingFilter</filter-name〉<filter-class>org.springframework。

cxf调用webservice服务时传递服务器验证需要的用户名密码

cxf调用webservice服务时传递服务器验证需要的用户名密码

cxf调⽤webservice服务时传递服务器验证需要的⽤户名密码cxf通过wsdl2java⽣成客户端调⽤webservice时,如果服务器端需要通过⽤户名和密码验证,则客户端必须传递验证所必须的⽤户名和密码,刚开始想通过url传递⽤户名和密码,于是在wsdl⽂件中直接在<soap:address location 标记中添加加⼊⽤户名和密码,但是webservice 接收不到参数,此种⽅法⾏不通。

后来在接⼝⽅法调⽤前⽤BindingProvider 得到RequestContext,在其中设置了请求需要的⽤户名和密码,接⼝顺利通过验证,执⾏成功,具体代码如下:/*** 根据给定的参数执⾏接⼝程序** @param request* @return*/public ZPILOT01SSOCMMIF001CONResponse executeService(ZPILOT01SSOCMMIF001CON request) throws Exception {// 得到本地服务类MIZPILOT01SSOCMMIF001CONOutSynService service = new MIZPILOT01SSOCMMIF001CONOutSynService();// 得到接⼝的代理MIZPILOT01SSOCMMIF001CONOutSyn stub = service.getMIZPILOT01SSOCMMIF001CONOutSynPort();// 设置访问接⼝服务器的⽤户名和密码BindingProvider bp = (BindingProvider) stub;Map<String, Object> context = bp.getRequestContext();context.put(ERNAME_PROPERTY, XI_USER_NAME);context.put(BindingProvider.PASSWORD_PROPERTY, XI_PASSWORD);// 执⾏接⼝ZPILOT01SSOCMMIF001CONResponse response = stub.miZPILOT01SSOCMMIF001CONOutSyn(request);// 返回响应return response;}。

webservice执行原理和步骤

webservice执行原理和步骤

Web服务(Web Service)是一种基于Web的应用程序接口(API),它使用标准的HTTP协议进行通信,通过网络提供服务和交换数据。

Web服务的执行原理和步骤如下:1. 定义服务接口:首先,需要定义Web服务的接口,即确定服务提供的功能和方法。

这可以使用一种称为WSDL(Web Services Description Language)的XML语言来描述。

2. 发布服务:将定义好的服务接口发布到网络上,使其他应用程序可以访问。

这可以通过将WSDL文件部署到Web服务器上来实现。

3. 发现服务:其他应用程序可以通过查找和发现机制来找到已发布的Web服务。

这可以通过使用UDDI(Universal Description, Discovery, and Integration)注册表或其他服务目录来实现。

4. 绑定服务:一旦找到了所需的Web服务,应用程序需要与之建立连接。

这可以通过使用SOAP(Simple Object Access Protocol)协议来实现,SOAP是一种基于XML的协议,用于在网络上交换结构化的信息。

5. 调用服务:应用程序可以通过发送SOAP消息来调用Web 服务的方法。

SOAP消息包含了调用的方法名和参数,以及其他必要的信息。

6. 处理请求:Web服务接收到SOAP消息后,会解析消息并执行相应的方法。

方法的执行可能涉及到访问数据库、处理数据、调用其他服务等操作。

7. 返回结果:一旦方法执行完成,Web服务会将结果封装成SOAP消息并返回给调用方。

调用方可以解析SOAP消息并获取返回的结果。

8. 解绑服务:当不再需要使用Web服务时,应用程序可以断开与服务的连接。

这可以通过关闭连接或释放资源来实现。

总结起来,Web服务的执行原理和步骤包括定义服务接口、发布服务、发现服务、绑定服务、调用服务、处理请求、返回结果和解绑服务。

通过这些步骤,应用程序可以与Web服务进行通信并获取所需的功能和数据。

java 处理 webservice详细方法

java 处理 webservice详细方法

java 处理 webservice详细方法Java是一种流行的编程语言,可以用于处理Web服务(WebService)。

在这篇文章中,我们将详细介绍Java处理WebService的方法。

1、使用Java API for XML Web Services (JAX-WS)来处理WebServiceJAX-WS是Java EE 5规范的一部分,它提供了一组API和工具,用于开发和部署SOAP(Simple Object Access Protocol)和RESTful (Representational State Transfer)风格的Web服务。

使用JAX-WS,开发人员可以轻松地创建、发布和使用Web服务。

2、使用Apache Axis2来处理WebServiceApache Axis2是一个流行的开源SOAP引擎,它提供了一组API 和工具,用于创建、发布和使用Web服务。

它支持各种Web服务协议和传输协议,包括HTTP(S)、SOAP、XML-RPC、JSON、JMS和SMTP。

3、使用Spring Web Services来处理WebServiceSpring Web Services是一个基于Spring Framework的库,它提供了一组API和工具,用于创建和使用SOAP Web服务。

它支持各种Web服务标准和技术,包括SOAP、WSDL(Web Services Description Language)、XML Schema和XSLT。

4、使用Java API for RESTful Web Services (JAX-RS)来处理WebServiceJAX-RS是Java EE 6规范的一部分,它提供了一组API和工具,用于创建和使用RESTful Web服务。

使用JAX-RS,开发人员可以轻松地创建、发布和使用RESTful Web服务,同时也可以很容易地与其他Java EE技术集成。

webservice使用的协议及简述使用流程

webservice使用的协议及简述使用流程

Webservice使用的协议及简述使用流程1. 协议介绍Webservice是一种能够进行跨平台、跨语言的通信方式,通过使用XML标准作为信息交换的格式,在互联网上实现不同系统之间的数据互操作。

在Webservice中,有多种协议可供选择,包括SOAP、REST等。

1.1 SOAP协议SOAP(Simple Object Access Protocol)是一种基于XML的通信协议,用于在网络之间传送结构化的信息。

它定义了一组规范,用于描述消息的结构、传递方式和处理过程。

SOAP协议一般基于HTTP传输,也可以使用其他协议。

1.2 REST协议REST(Representational State Transfer)是一种基于HTTP的通信协议,它利用不同的HTTP方法对资源进行操作(如GET、POST、PUT、DELETE),并使用URL作为资源的唯一标识。

REST协议使用的数据格式可以是XML、JSON等。

2. 使用流程下面是使用Webservice的一般流程,以调用一个Webservice提供的功能为例:2.1. 准备工作在使用Webservice之前,需要进行一些准备工作:•确定目标Webservice的URL或服务地址。

•根据目标Webservice的提供的文档,了解其接口、参数和返回值等信息。

2.2. 构建请求构建Webservice请求的方式取决于使用的协议。

以下介绍SOAP和REST协议下的请求构建方法。

2.2.1. SOAP协议请求在使用SOAP协议时,可以使用SOAP工具包来构建请求,如Java中的Apache CXF、JAX-WS等。

1.创建一个请求对象,并设置相应的参数。

2.使用SOAP工具包提供的方法将请求对象转换为符合SOAP格式的XML消息。

2.2.2. REST协议请求在使用REST协议时,可以使用HTTP请求来构建请求。

1.根据目标Webservice的接口文档,确定使用的HTTP方法(如GET、POST等)和URL。

Java通过cxf发布和调用webservices接口

Java通过cxf发布和调用webservices接口

Java通过cxf发布webservices接口第一步:创建一个工程如:cxfserver1注:web工程和java工程都可以第二步:把apache-cxf-2.6.1资源包中lib文件夹下所有的jar包共计75个,都拷贝到cxfserver1的lib目录下,如果你的工程师java工程自己创建一个lib文件夹第三步:创建一个包inter,在inter下创建一个发布接口,接口名HelloWorld ,并进行webservices注解package inter;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebService;/*** 发布接口* @author Administrator**/@WebServicepublic interface HelloWorld {@WebMethodpublic String sayHello(@WebParam(name="name")String name);}第四步:创建一个包impl,在impl下创建一个接口实现类,对接口中的方法进行功能实现package impl;import inter.HelloWorld;/*** 接口功能实现类* @author Administrator**/public class HelloWorldImpl implements HelloWorld {public String sayHello(String name) {// TODO Auto-generated method stubSystem.out.println("进入接口中");return name.concat(",进入接口中");}}第五步:创建一个包release,在release下创建一个接口发布主线程入口,执行该方法进行接口发布package release;import impl.HelloWorldImpl;import inter.HelloWorld;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;/*** 发布接口的主线程入口类**/public class ReleasePortMain {public static void main(String[] args) {// TODO Auto-generated method stubHelloWorldImpl implementor = new HelloWorldImpl();//初始化功能实现类JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();//初始或工厂类svrFactory.setServiceClass(HelloWorld.class);//设置发布接口对象svrFactory.setAddress("http://localhost:9000/helloWorld");//自己设置发布接口在JVM 中的访问地址svrFactory.setServiceBean(implementor);//设置接口功能实现类对象svrFactory.getInInterceptors().add(new LoggingInInterceptor());//设置异常抛出svrFactory.getOutInterceptors().add(new LoggingOutInterceptor());//设置异常抛出svrFactory.create();//执行接口发布}}注:如果执行发布接口,抛出如下异常信息: Creating Service {http://inter/}HelloWorldService from class inter.HelloWorldException in thread "main" ng.LinkageError: 正在从引导类加载器加载JAXB 2.1 API, 但此 RI (来自jar:file:/D:/worke/codehy/cxfserver1/lib/jaxb-impl-2.2.5.jar!/com/sun /xml/bind/v2/model/impl/ModelBuilder.class) 需要 2.2 API。

Java使用WebService详解

Java使用WebService详解

Java使用WebService详解WebService(Web Services)是一种基于Web的技术,它提供了一种在网络上的不同应用程序之间进行交互的方式。

使用WebService可以实现跨平台、跨语言的通信,使不同系统之间可以共享数据和功能。

Java是一种广泛使用的编程语言,也是使用WebService的一种常见方式。

在Java中,可以使用许多不同的库和框架来实现WebService的功能。

下面将介绍一些常用的Java库和框架,以及如何使用它们创建和消费WebService。

2. Apache CXF:Apache CXF是一个开源的Java库,它提供了一种简单的方式来创建和消费WebService。

使用Apache CXF,可以通过使用少量的注解来创建WebService,并且可以使用不同的传输协议(如HTTP、SOAP等)进行通信。

Apache CXF也提供了许多工具和插件,可以帮助开发人员更方便地使用WebService。

3. Spring Web Services:Spring Web Services是Spring框架的一部分,它提供了一种基于Spring的方式来创建和消费WebService。

使用Spring Web Services,开发人员可以通过使用Spring的依赖注入和面向切面编程等特性来简化WebService的开发。

Spring Web Services还提供了一些工具和模板,可以帮助开发人员更轻松地使用WebService。

4. Apache Axis:Apache Axis是一个开源的WebService框架,它提供了一种用于创建和消费WebService的完整解决方案。

使用Apache Axis,可以通过使用WSDL(Web Services Description Language)文件来定义WebService的接口,并通过使用一些工具来生成WebService的客户端和服务端代码。

java的webservice用法

java的webservice用法

Java的WebService用法介绍W e bS er vi ce是一种基于We b标准的服务通信协议,可以在分布式系统中实现跨平台、跨语言的通信。

使用Ja v a语言开发W eb Ser v ic e具有简单易用、可靠性高的特点。

本文将介绍J av a的We bS er vi c e用法。

什么是WebS erviceW e bS er vi ce是一种基于XM L的协议,用于不同系统之间的通信。

它使用标准的H TT P协议传输X ML数据,可以在不同操作系统、编程语言、硬件设备之间互相通信。

Jav a的We bServic e实现方式在J av a中,有多种方式来实现W eb Se rv i ce,常用的有S OA P和R E ST fu l两种方式。

1.S O A PS O AP(S im pl eO bj ec t Ac ce ss Pr ot oc ol)是一种基于XM L的通信协议,它使用H TT P协议进行数据传输。

SO A P是一种严格的规范,定义了消息的格式以及如何发送和接收消息。

开发人员可以使用J ava的AP I来创建SO AP客户端和服务端。

使用Ja va实现SO AP的We bS er vi ce,需要以下步骤:1.定义服务接口:使用Ja va的接口定义需要提供的服务。

2.实现服务接口:编写J a va类来实现服务接口定义的方法。

3.发布We bS er vi ce:使用J av a提供的工具将服务发布到指定的UR L 上。

4.客户端调用:开发客户端代码来调用已发布的We bS er vic e。

2.R E S T f u lR E ST fu l(Re pr es en t at io na lS ta te Tra n sf er)是一种基于H TT P协议的架构风格,它提供了一组约束和原则来设计分布式系统。

R ES Tf ul的W eb Se rv ic e使用H TT P的GE T、POS T、P UT、D EL ET E等方法来进行资源的访问和操作。

webservice参数构造示例

webservice参数构造示例

文章标题:深度解析:webservice参数构造示例在软件开发中,webservice是一种重要的通信协议,它可以帮助不同的应用程序进行跨评台交互和数据传输。

而webservice参数构造则是我们在使用webservice时不可或缺的重要环节。

本文将就webservice参数构造进行深入探讨,并结合示例进行详细解析。

1. 什么是webservice参数构造?我们需要了解webservice参数构造的含义。

在webservice通信中,参数构造指的是在进行webservice调用时,如何准确地构造参数并传递给目标接口。

这些参数可以包括请求的方法名称、输入参数、输出参数等。

合理的参数构造可以保证信息的准确传递和系统的正常运行。

2. webservice参数构造的重要性在实际的软件开发中,webservice参数构造的正确与否直接影响了不同系统之间的信息交流。

一个良好的参数构造可以提高系统的稳定性和响应速度,而不当的参数构造则可能导致接口调用失败或信息传递不准确。

3. 参数构造示例接下来,我们通过一个具体的示例来演示webservice参数构造的过程。

假设我们需要调用一个webservice接口来查询某个商品的信息,那么我们可以通过构造以下参数来实现:- 方法名称:getProductInfo- 输入参数:商品编号- 输出参数:商品名称、价格、库存等在实际的webservice调用中,我们需要将以上参数按照接口要求进行组装,并通过HTTP或其他协议进行传输。

可以使用XML或JSON格式来构造参数,并通过POST或GET方式传递给目标webservice接口。

4. webservice参数构造的注意事项在进行webservice参数构造时,我们需要注意以下几点:- 确保参数的准确性和完整性,避免遗漏关键信息- 根据目标接口的要求进行参数结构的构造,包括参数名称、格式、编码等- 在参数传递过程中,注意安全性和数据加密等问题,保护信息的安全性- 对于复杂的参数构造,可以考虑使用第三方工具或库来简化操作,提高效率5. 个人观点与理解在我看来,webservice参数构造是webservice调用过程中至关重要的一环。

java调用webservice的写法

java调用webservice的写法

文章标题:深入探讨:Java中调用WebService的最佳实践在当今的软件开发领域,Web服务已成为各种应用系统之间进行数据交互和通信的重要方式。

而Java作为一种广泛应用的编程语言,其调用WebService的方式也备受关注。

本文将就Java中调用WebService的写法进行深入探讨,帮助读者全面、深刻地理解和掌握这一技术。

1. 理解WebService让我们简要回顾一下WebService的基本概念。

WebService是一种基于网络的标准化服务,它使用标准的XML协议来进行通信,并且可以在网络上的不同设备之间进行交互。

这种服务通常以WSDL(Web Services Description Language)描述文件的形式暴露出来,客户端可以根据WSDL文件了解服务的细节,并基于此进行调用。

2. Java调用WebService的基本步骤在Java中调用WebService,通常需要经历以下基本步骤:(1)使用Java工具生成客户端代码:可以使用wsimport工具根据服务的WSDL文件生成客户端代码,这些代码将帮助我们在Java中调用WebService。

(2)创建客户端对象:根据生成的客户端代码,我们需要创建客户端对象,并设置WebService的位置区域、参数等信息。

(3)调用WebService方法:通过客户端对象,我们可以直接调用WebService暴露的方法,并进行数据交互和通信。

3. 深入了解Java调用WebService的写法接下来,让我们深入了解Java中调用WebService的写法。

我们需要关注在生成客户端代码时的一些注意事项。

我们需要确保WSDL文件的有效性、对命名空间的处理等方面。

在创建客户端对象时,我们还需要考虑如何处理认证、超时、异常等问题,以确保调用的稳定性和安全性。

另外,值得一提的是,Java中调用WebService的写法不仅限于传统的JAX-WS标准,还可以结合Spring等框架来简化开发流程,提升开发效率。

webservice高级用法

webservice高级用法

webservice高级用法WebService 高级用法包括:1. 安全性和身份验证:通过使用各种身份验证协议(如OAuth、OpenID等)和加密通信(如SSL/TLS)来保障 WebService 的安全性。

此外,可以使用数字证书进行客户端身份验证。

2. 缓存和性能优化:使用缓存机制来减少对后端服务的请求次数。

可以将结果进行缓存,以便在未来的请求中直接使用。

还可以使用技术来提高性能,如压缩数据、多线程处理和分布式部署等。

3. 发布和发现服务:使用 UDDI(Universal Description, Discovery, and Integration)标准来注册和发现 WebService。

UDDI 提供了一个注册表,使客户端能够找到合适的服务提供者。

4. 异步通信:使用异步通信模式来处理长时间运行的操作,如处理大文件上传、发送大量消息等。

可以使用消息队列、回调机制和分布式任务调度器等。

5. 事务处理:在 WebService 调用中实现事务支持,以确保在一组相关操作中保持数据的一致性和完整性。

可以使用事务管理器、XA 协议和分布式事务处理等。

6. 扩展性和灵活性:使用服务组合和管道机制来实现复杂的业务逻辑和数据转换。

可以根据不同的需求选择合适的技术和框架,如ESB(Enterprise Service Bus)、API 管理器和消息代理等。

7. 提供元数据:Web服务能够提供元数据信息,如 WSDL(Web Services Description Language)描述文件,用于描述服务的访问方式、参数和返回结果。

这样,客户端可以根据 WSDL 生成对应的客户端代码,方便客户端调用。

8. 监控和管理:使用监控和管理工具来跟踪 WebService 的性能和可用性。

可以设置警报和日志记录,便于故障排除和性能优化。

综上所述,WebService 的高级用法可以帮助提升安全性、性能、可扩展性和管理能力,以实现更复杂和高效的应用程序集成和交互。

使用JBoss 5.1.0.GA问题汇总

使用JBoss 5.1.0.GA问题汇总

使用JBoss 5.1.0.GA部署项目可能遇到的问题汇总1、ng.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter原因就是Jboss对于log4jConfigLocation这个参数的支持似乎并不好,而且JBoss本身已经有log4j的配置,故需要如下配置(不进行log4j的配置):<!-- Tomcat使用 --><!-- <context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:config/log4j.xml</param-value></context-param><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext.xml</param-value></context-param> --><!-- JBoss使用 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/applicationContext.xml</param-value></context-param>列出一个有可能用到的log4j.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM"/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/ log4j.dtd"><log4j:configuration xmlns:log4j="/log4j/"> <!-- 控制台配置 --><appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{yyyy-MM-ddHH:mm:ss} %-5p %c{1}:%L - %m%n" /></layout></appender><!-- 文件配置 --><!-- <appender name="file" class="org.apache.log4j.RollingFileAppender"> <param name="append" value="false" /><param name="maxFileSize" value="10MB" /><param name="maxBackupIndex" value="10" /><param name="file" value="${catalina.home}/logs/pro.log" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{yyyy-MM-ddHH:mm:ss} %-5p %c{1}:%L - %m%n" /></layout></appender> --><root><level value="WARN" /><appender-ref ref="console" /><!-- <appender-ref ref="file" /> --></root></log4j:configuration>其中需要注意下,使用网上经常能搜到的<!DOCTYPE log4j:configuration SYSTEM"log4j.dtd">是会报错的。

webservice发布过程及常见问题

webservice发布过程及常见问题

WebServices生成发布过程及常见问题的解决方法本文主要讲诉:一、VS中创建Web服务项目。

二、WebService生成发布三、网站发布四、故障及解决方法五、如何访问WebService六、Win 7下的WebService发布和使用WebService需要首先安装IIS服务,IIS的安装过程这里就不在叙述,baidu 上到处都是。

1、VS中创建Web服务项目在VS中“文件”->“新建”->“网站”->“ Web服务”。

创建过程很简单,和其他项目的创建过程基本相同,这里就不多说了。

这里我创建了一个名为MyWebService的解决方案,如下图所示,系统会自动添加一个名为Service的asmx文件,并在App_Code文件夹中添加一个同名的代码容器类。

我们可以将这两个文件删除,然后依次在上点击右键,选择“添加新项”。

在打开的窗口中选择“Web服务”,添加一个新的Web服务,命名为MyService。

我们同样可以将这两个名为Service的文件重命名为MyService。

但在重命名的时候,有四个地方的名称是必须更改的。

1、将Service.cs的名称改为MyService.cs2、将Service.asmx的名称改为MyService.asmx3、将Service.cs文件中的类名public class Service : System.Web.Services.WebService改为public class MyService : System.Web.Services.WebService同时修改构造函数。

4、将Service.asmx文件中Class属性指向MyService,修改如下<%@WebService Language="C#"CodeBehind="~/App_Code/MyService.cs"Class="Service" %> 改为<%@WebService Language="C#"CodeBehind="~/App_Code/MyService.cs"Class="MyService"%> 有点啰嗦了,其实文件中如果有名称不匹配的话,一般在调试的时候系统都会给出错误提示。

CXF WebService开发常见异常及解决方法

CXF WebService开发常见异常及解决方法

最近在研究利用CXF开发WebService,一开始就遇到了不少的问题,现将开发中记录下来的问题和解决方法分享给大家。

===============================异常1================================org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass信息: Creating Service {/}IHelloServicesService from class com.deppon.ws.services.IHelloServicesException in thread "main" javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)atorg.apache.cxf.helpers.XMLUtils.getDocumentBuilderFactory(XMLUtils.ja va:109)at org.apache.cxf.helpers.XMLUtils.getParser(XMLUtils.java:133)at org.apache.cxf.helpers.XMLUtils.parse(XMLUtils.java:151)at …异常原因:缺少xercesImpl.jar。

===============================异常2================================org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass信息: Creating Service {/}IHelloServicesService from class com.deppon.ws.services.IHelloServicesException in thread "main" ng.LinkageError: JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/d:/ workspace/CxfServices/libs/jaxb-impl-2.2.1.1.jar!/com/sun/xml/bind/v2 /model/impl/ModelBuilder.class) needs 2.2 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See /j2se/1.6.0/docs/guide/standards/)atcom.sun.xml.bind.v2.model.impl.ModelBuilder.<clinit>(ModelBuilder.jav a:173)atcom.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContex tImpl.java:456)atcom.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.ja va:302)at …原因:jdk1.6.0_11中的jaxws-api-2.0.jar及jaxb-api-2.0.jar,而cxf需要jaxws-api-2.1.jar及jaxb-api-2.1.jar的支持。

webservice常碰到的问题

webservice常碰到的问题

详解WebService开发中四个常见问题问题一:WebService与方式重载第一说明,WebService不支持方式重载。

下面举例说明。

例如概念如下WebService接口:先来看方式sayHello(),若是客户端发送如下SOAP请求:从SOAP请求咱们能够看出客户端需要挪用方式为sayHello(),所传递的参数为11,可是无法明白是整数的11,仍是字符串"11",因此也就无法确信所挪用的方式是哪个。

接下来看一下sayHello2(),若是客户端传递的参数只包括一个id值,例如:仍是无法判定挪用的是哪个方式,因为能够明白得为客户端传递的第二个参数为空(Null)。

通常情形下,在发布一个含有重载方式的WebService时会有异样发生,或当挪用一个方式时,效劳器端报告找不到相对应的方式。

问题二:我的数据被修改了?先来看WebService接口:那个地址需要注意的是WebService的方式sayHello()的参数是一个接口,而不是一个具体类(例如Aegis绑定就许诺直接发布如此的WebService)。

在客户端挪用sayHello()的时候传递一个Person对象,它实现了IPerson接口。

通过中间一系列的XML和对象之间的转换进程,效劳器端取得的只是一个实现了IPerson接口的实例,它不必然确实是一个Person对象,若是要强制将其转换为Person,就有可能抛出异样。

问题的本源在于Aegis将XML转换为Java对象是通过Proxy或CGlib这种的工具生成一个“代理类”实现IPerson接口,然后创建那个代理类的一个实例,那它确信不是一个Person了。

问题三:循环引用仍是先来看一个例子。

下面是WebService的接口:请注意,Teacher和Student是一对多的“双向”关系。

在这种情形下,咱们能够想一下如何将一个Teacher对象转换成一段XML?您可能想到下面的答案:看到了吧,XML竟然也会进入“死循环”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档