CXF 定义服务端传递List参数报错,最好写一个类来封装List。
spring集成cxf
1.web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <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"> <display-name>(Spring Application)</display-name> <context-param> <description>log4j 配置文件位置</description> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param> <context-param> <description>Spring配置文件位置</description> <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> <session-config> <session-timeout>43200</session-timeout> </session-config> <!-- 集成cxf(webservice)--> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <!-- end booking ticket --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/index.jsp</location> </error-page> </web-app>
2.applicationContext-ws.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <jaxws:endpoint id="userService" implementor="org.apache.cxf.ws.service.ComplexUserService" address="/userService" /> </beans>
IComplexUserService.java
package org.apache.cxf.ws.service; import javax.jws.WebService; import org.apache.cxf.pojo.User; @WebService public interface IComplexUserService { String validateUser(User user); }
ComplexUserService.java
package org.apache.cxf.ws.service; import javax.jws.WebService; import org.apache.cxf.pojo.User; @WebService(endpointInterface="org.apache.cxf.ws.service.IComplexUserService") public class ComplexUserService implements IComplexUserService { @Override public String validateUser(User user) { return user.validate(user); } }
Exception in thread "main" java.lang.UnsatisfiedLinkError: java.util.zip.ZipFile.open(Ljava/lang/String;IJZ)J at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:127) at java.util.jar.JarFile.<init>(JarFile.java:135) at java.util.jar.JarFile.<init>(JarFile.java:72) at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:646) at sun.misc.URLClassPath$JarLoader.access$600(URLClassPath.java:540) at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:607) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:599) at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:583) at sun.misc.URLClassPath$3.run(URLClassPath.java:333) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath.getLoader(URLClassPath.java:322) at sun.misc.URLClassPath.getLoader(URLClassPath.java:299) at sun.misc.URLClassPath.findResource(URLClassPath.java:145) at java.net.URLClassLoader$2.run(URLClassLoader.java:385) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findResource(URLClassLoader.java:382) at java.lang.ClassLoader.getResource(ClassLoader.java:1002) at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1192) at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:78) at javax.xml.ws.spi.Provider.provider(Provider.java:83) at javax.xml.ws.Endpoint.publish(Endpoint.java:170) at org.apache.cxf.logInter.ServiceMain.main(ServiceMain.java:25)
weblogic自带了很多jar包 当工程中的jar和weblogic自带jar版本不一致时 往往会出现错误。
为了解决在weblogic中jar包冲突的问题 你可以在web-inf下创建一个weblogic.xml
内容如:
<?xml version="1.0"?>
<weblogic-web-app
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>//优先加载web工程中的jar包
</container-descriptor>
</weblogic-web-app>
转载请注明地址:http://www.cnblogs.com/likehua/
package org.apache.cxf.logInter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import javax.xml.ws.Endpoint; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxws.EndpointImpl; import org.apache.cxf.ws.service.ComplexUserService; import org.apache.cxf.ws.service.IComplexUserService; public class ServiceMain { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub IComplexUserService userService = new ComplexUserService(); EndpointImpl ep = (EndpointImpl)Endpoint.publish("http://localhost:7001/spring/services/userService",userService); //添加in拦截器 ep.getInInterceptors().add(new LoggingInInterceptor(new PrintWriter(new FileWriter("in.txt")))); //添加out拦截器 ep.getOutInterceptors().add(new LoggingOutInterceptor(new PrintWriter(new FileWriter("out.txt")))); System.out.println("web service 暴露接口"); } }
今天用cxf生成内控的客户端遇到问题 全部生成了jaxbelement元素的了 网上找了下命令 找了好久 贴出来以便忘记了 : H:\apache-cxf-2.7.3\bin>wsdl2java.bat -b "1.xml" -p com.tempus.b2gs.tsa.outInter face.innercontroller.osbservice -client -frontend jaxws21 http://172.16.3.158:8 085/osbServicewsdl 1.xml如下: <?xml version="1.0" encoding="UTF-8"?> <jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <jaxb:globalBindings generateElementProperty="false" /> </jaxb:bindings>
相关推荐
CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)中的Web服务。CXF允许开发者以他们选择的语言(如Java)编写服务端和客户端代码,同时支持多种Web...
Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个框架允许开发者通过SOAP、RESTful HTTP、XML以及各种协议来实现服务接口。在本案例中,我们讨论的是"apache-cxf-3.4.3.tar.gz",这是Apache CXF ...
CXF(CXF: The Apache CXF project is an open source services framework)是一个开源的Java服务框架,它允许开发者创建和消费各种Web服务。CXF的名字来源于"Code first"和"XML first",代表着它支持从Java代码或者...
【Cxf转换器示例】是一个关于Web服务技术的实践项目,主要聚焦于Apache CXF框架中的转换器(Converter)功能。Apache CXF是一个开源的Java框架,它用于构建和开发服务导向架构(SOA)和RESTful应用程序。CXF不仅支持...
在IT行业中,Spring CXF是一个广泛使用的开源框架,它整合了Spring框架的功能和Apache CXF的服务堆栈,为开发人员提供了构建和实现Web服务的强大工具。在这个“Spring CXF Restful实例”中,我们将深入探讨如何利用...
Apache CXF是一个开源的服务框架,它允许开发人员创建和消费各种Web服务。CXF这个名字来源于两个项目的合并:Celtix和XFire,这两个项目都专注于Web服务的实现。CXF3.1.11是该框架的一个特定版本,发布于某个时间点...
Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-3.1.6所有jar包"的压缩文件包含了CXF 3.1.6版本的所有核心库和依赖组件。在Java Web服务开发中,CXF扮演着重要...
### CXF打印SOAP报文与记录WebService日志 在企业级应用开发中,尤其是涉及到服务端接口(如WebService)的设计与实现时,日志记录变得尤为重要。它不仅可以帮助开发者更好地理解系统运行状况、定位问题所在,还能...
【标题】"CXF Spring Maven 实例"是一个关于如何整合并使用这些技术创建Web服务的教程。CXF是一个开源框架,主要用于构建和部署SOAP和RESTful Web服务,Spring则是一个广泛应用的Java企业级开发框架,而Maven是项目...
Apache CXF 是一个开源的Java框架,用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)和Web服务。这个"apache-cxf-2.5.2"版本是该框架的一个特定发行版,发布于2011年,包含了CXF框架的所有组件和...
在IT行业中,CXF是一个广泛使用的开源框架,主要用于构建和开发Web服务。它不仅支持SOAP,还支持RESTful API,提供了强大的服务实现和消费能力。本篇将详细讲解如何使用CXF来集成Web Service接口到一个Web项目中,...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。CXF这个名字是"CXF"前两个版本的名字——"Celtic XFire"和"XFire"的组合,它代表了这个框架在集成不同技术栈上的连续性和进化...
CXF与Axis2框架区别详解 CXF和Axis2是两个流行的Webservice框架,都是由现有的项目逐渐演化而来的。Axis2是由Axis1.x系列演化而来,而Apache CXF则是由Celtix和XFire项目整合而生。在本文中,我们将探讨CXF和Axis2...
Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个"apache-cxf-2.7.7.zip"压缩包包含了CXF框架的2.7.7版本,这是一个在2013年发布的稳定版本。CXF是Apache软件基金会的项目,它集成了多种Web服务...
CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和服务导向架构(SOA)。CXF允许开发人员通过多种Web服务协议(如SOAP、RESTful HTTP、XML/HTTP等)来创建和消费Web服务。在这个...
Apache CXF是一个开源的Java框架,它用于构建和部署Web服务。CXF允许开发者通过SOAP、RESTful API、XML以及各种协议和绑定来创建服务。在这个"**cxf-3.1.6**"的压缩包中,包含了运行CXF Web服务所需的基本组件,使得...
【CXF最少依赖JAR包】是针对Apache CXF框架的一种精简打包方式,旨在减少项目中的依赖体积,提高项目的加载速度和管理效率。Apache CXF是一个开源的、基于Java的Web服务框架,它允许开发者创建和消费各种类型的Web...
Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个项目的核心目标是提供一个工具集,使开发者能够轻松地创建和部署基于SOAP和RESTful的服务。CXF这个名字来源于两个曾经流行...
SpringBoot与CXF整合是构建基于Web服务的应用程序的一个常见实践。CXF是一个开源的Java框架,用于构建和开发服务导向架构(SOA)应用程序,它支持SOAP和RESTful服务。SpringBoot则简化了Spring应用的初始化和配置,...