- 浏览: 772195 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
corelengine:
好文,支持一下!
在 Spring Web Flow 项目中应用 Hessian 服务 -
corelengine:
感谢分享,不过你的工程太简单了,怎么可以导入eclipse
Spring Web Flow 2.0 入门 例子源码 -
chenrongtao2132:
melody404 写道请教博主一个问题
登录成功以后为什么老 ...
CAS 单点登录安装笔记4 -- asp.net client端的设置 -
chxiaowu:
从头到尾没发现 那里有 cxf bean配置啊。。。。
WebService开发笔记 3 -- 增强访问 WebService 的安全性 -
chxiaowu:
严重: StandardWrapper.Throwable
o ...
WebService开发笔记 3 -- 增强访问 WebService 的安全性
WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单
现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService进行信息数据的操作。下面就将我们在开发中摸索的一点经验教训总结以下,以供大家参考.
在WebService开发笔记 2 -- VS 2005 访问WebServcie更简单中作一个跨平台访问WebServcie服务的例子....
在WebService开发笔记 3 -- 增强访问 WebService 的安全性通过一个简单的用户口令验证机制来加强一下WebService的安全性....
我们项目的整个架构使用的比较流行的WSH MVC组合,即webwork2 + Spring + Hibernate;
1.首先集成Apacha CXF WebService 到 Spring 框架中;
apache cxf 下载地址:http://people.apache.org/dist/incubator/cxf/2.0.4-incubator/apache-cxf-2.0.4-incubator.zip
在spring context配置文件中引入以下cxf配置
在web.xml中添加过滤器:
2.开发服务端WebService接口:
由简单到复杂定义了三个接口,模拟业务需求;
3.实现接口
4.依赖的两个类:用户对象与List对象
关于List对象,参照了有关JWS的一个问题中的描述:DK6.0 自带的WebService中 WebMethod的参数好像不能是ArrayList 或者其他List
传递List需要将List 包装在其他对象内部才行 (个人理解 如有不对请指出) ,我在实践中也遇到了此类问题.通过以下封装的对象即可以传递List对象.
5.WebService 服务端 spring 配置文件 ws-context.xml
WebService 客户端 spring 配置文件 wsclient-context.xml
6.发布到tomcat服务器以后通过以下地址即可查看自定义的webservice接口生成的wsdl:
http://88.148.29.54:8080/aio/services/WebServiceSample?wsdl
7.调用WebService接口的Junit单元测试程序
或者是将bus配置到JaxWsClientFactory中去
多谢楼上回复,按照你的配置,问题已经解决。但是你这段配置有一个错误
<property name="bus" value="#cxf" />
这一行应该配置在 identityValidateServiceClientFactory 这个 bean 中,如果配置在 identityValidateServiceClient 这个 bean ,会报找不到 property 的错误。
另外,应该写成 <property name="bus" ref="cxf">
按照你的写法会出现 classcast 错误:不能把 String 转成 Bus 对象。
我修改了你的配置,如下:
这些信息不是错误信息,这是因为CXF使用的是j.u.l 而不是Jboss使用的log4j。这样CXF的日志输出就被定向到了错误输出流里面了。 你看到这些日志应该是 INFO level的。
对于NPE,的确是楼主在配置client factory的过程中没有制定bus 而造成的。
如果不想指定bus你可以使用 来定义客户端。
或者是将bus配置到JaxWsClientFactory中去
不明白你的问题是什么,你是问在调用的client的时候如何将wsdl 的url 传给client吗?
Java代码
信息: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: class com.color.webterminal.ws.dto.UserDTO nor any of its super class is known to this context.
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:207)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:63)
信息: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: class com.color.webterminal.ws.dto.UserDTO nor any of its super class is known to this context.
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:207)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:63)
报上面错误啊,按照楼主的做的代码,Help me
有没有用annotation标注JAVA-XML映射呀?
报上面错误啊,按照楼主的做的代码,Help me
用2.0.5是通过的,但是jira上面写的是2.0.4就fixed
Spring 2.5.2 是在2008年2月底发布的,而CXF 2.0.4 是在2008年1月底发布的。 JIRA上说2.0.4 fixed 的bug 应该是与Spring 2.5相关的bug。
现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService进行信息数据的操作。下面就将我们在开发中摸索的一点经验教训总结以下,以供大家参考.
在WebService开发笔记 2 -- VS 2005 访问WebServcie更简单中作一个跨平台访问WebServcie服务的例子....
在WebService开发笔记 3 -- 增强访问 WebService 的安全性通过一个简单的用户口令验证机制来加强一下WebService的安全性....
我们项目的整个架构使用的比较流行的WSH MVC组合,即webwork2 + Spring + Hibernate;
1.首先集成Apacha CXF WebService 到 Spring 框架中;
apache cxf 下载地址:http://people.apache.org/dist/incubator/cxf/2.0.4-incubator/apache-cxf-2.0.4-incubator.zip
在spring context配置文件中引入以下cxf配置
<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" />
在web.xml中添加过滤器:
<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>
2.开发服务端WebService接口:
/** * WebService接口定义类. * * 使用@WebService将接口中的所有方法输出为Web Service. * 可用annotation对设置方法、参数和返回值在WSDL中的定义. */ @WebService public interface WebServiceSample { /** * 一个简单的方法,返回一个字符串 * @param hello * @return */ String say(String hello); /** * 稍微复杂一些的方法,传递一个对象给服务端处理 * @param user * @return */ String sayUserName( @WebParam(name = "user") UserDTO user); /** * 最复杂的方法,返回一个List封装的对象集合 * @return */ public @WebResult(partName="o") ListObject findUsers(); }
由简单到复杂定义了三个接口,模拟业务需求;
3.实现接口
/** * WebService实现类. * * 使用@WebService指向Interface定义类即可. */ @WebService(endpointInterface = "cn.org.coral.biz.examples.webservice.WebServiceSample") public class WebServiceSampleImpl implements WebServiceSample { public String sayUserName(UserDTO user) { return "hello "+user.getName(); } public String say(String hello) { return "hello "+hello; } public ListObject findUsers() { ArrayList<Object> list = new ArrayList<Object>(); list.add(instancUser(1,"lib")); list.add(instancUser(2,"mld")); list.add(instancUser(3,"lq")); list.add(instancUser(4,"gj")); ListObject o = new ListObject(); o.setList(list); return o; } private UserDTO instancUser(Integer id,String name){ UserDTO user = new UserDTO(); user.setId(id); user.setName(name); return user; } }
4.依赖的两个类:用户对象与List对象
/** * Web Service传输User信息的DTO. * * 分离entity类与web service接口间的耦合,隔绝entity类的修改对接口的影响. * 使用JAXB 2.0的annotation标注JAVA-XML映射,尽量使用默认约定. * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "User") public class UserDTO { protected Integer id; protected String name; public Integer getId() { return id; } public void setId(Integer value) { id = value; } public String getName() { return name; } public void setName(String value) { name = value; } }
关于List对象,参照了有关JWS的一个问题中的描述:DK6.0 自带的WebService中 WebMethod的参数好像不能是ArrayList 或者其他List
传递List需要将List 包装在其他对象内部才行 (个人理解 如有不对请指出) ,我在实践中也遇到了此类问题.通过以下封装的对象即可以传递List对象.
/** * <p>Java class for listObject complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="listObject"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="list" type="{http://www.w3.org/2001/XMLSchema}anyType" maxOccurs="unbounded" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "listObject", propOrder = { "list" }) public class ListObject { @XmlElement(nillable = true) protected List<Object> list; /** * Gets the value of the list property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> method for the list property. * * <p> * For example, to add a new item, do as follows: * <pre> * getList().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Object } * * */ public List<Object> getList() { if (list == null) { list = new ArrayList<Object>(); } return this.list; } public void setList(ArrayList<Object> list) { this.list = list; } }
5.WebService 服务端 spring 配置文件 ws-context.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" xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName" default-lazy-init="true"> <jaxws:endpoint id="webServiceSample" address="/WebServiceSample" implementor="cn.org.coral.biz.examples.webservice.WebServiceSampleImpl"/> </beans>
WebService 客户端 spring 配置文件 wsclient-context.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" xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName" default-lazy-init="true"> <!-- ws client --> <bean id="identityValidateServiceClient" class="cn.org.coral.admin.service.IdentityValidateService" factory-bean="identityValidateServiceClientFactory" factory-method="create" /> <bean id="identityValidateServiceClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="cn.org.coral.admin.service.IdentityValidateService" /> <property name="address" value="http://88.148.29.54:8080/coral/services/IdentityValidateService"/> </bean> </beans>
6.发布到tomcat服务器以后通过以下地址即可查看自定义的webservice接口生成的wsdl:
http://88.148.29.54:8080/aio/services/WebServiceSample?wsdl
7.调用WebService接口的Junit单元测试程序
package test.coral.sample; import org.springframework.test.AbstractDependencyInjectionSpringContextTests; import cn.org.coral.biz.examples.webservice.WebServiceSample; import cn.org.coral.biz.examples.webservice.dto.UserDTO; public class TestWebServiceSample extends AbstractDependencyInjectionSpringContextTests { WebServiceSample webServiceSampleClient; public void setWebServiceSampleClient(WebServiceSample webServiceSampleClient) { this.webServiceSampleClient = webServiceSampleClient; } @Override protected String[] getConfigLocations() { setAutowireMode(AUTOWIRE_BY_NAME); //spring 客户端配置文件保存位置 return new String[] { "classpath:/cn/org/coral/biz/examples/webservice/wsclient-context.xml" }; } public void testWSClinet(){ Assert.hasText(webServiceSampleClient.say(" world")); } }
评论
27 楼
weixinjie
2008-10-24
为什么我得到的wsdl没有element的具体描述 ,好像userUTO文件和ListObject文件的注释没有起作用啊 谢谢大家帮忙看看
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions name="WebServiceSampleImplService" targetNamespace="http://impl.cxf.prince.com/" xmlns:ns1="http://cxf.prince.com/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.cxf.prince.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/cxfjaxb/WebServiceSample?wsdl=WebServiceSample.wsdl" namespace="http://cxf.prince.com/" />
- <wsdl:message name="sayUserNameResponse">
<wsdl:part element="ns1:sayUserNameResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayResponse">
<wsdl:part element="ns1:sayResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsersResponse">
<wsdl:part element="ns1:findUsersResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="say">
<wsdl:part element="ns1:say" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayUserName">
<wsdl:part element="ns1:sayUserName" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsers">
<wsdl:part element="ns1:findUsers" name="parameters" />
</wsdl:message>
- <wsdl:binding name="WebServiceSampleImplServiceSoapBinding" type="ns1:WebServiceSample">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayUserName">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="sayUserName">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayUserNameResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="findUsers">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="findUsers">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="findUsersResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="say">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="say">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WebServiceSampleImplService">
- <wsdl:port binding="tns:WebServiceSampleImplServiceSoapBinding" name="WebServiceSampleImplPort">
<soap:address location="http://localhost:8080/cxfjaxb/WebServiceSample" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
如果实现一个返回List类型的接口,可以获得list的大小,但是list里的对象都为空;如果用楼主的listobject来封装,在执行listobject.getList()方法时,取得的为空
不知道这个应该怎么解决,谢谢!
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions name="WebServiceSampleImplService" targetNamespace="http://impl.cxf.prince.com/" xmlns:ns1="http://cxf.prince.com/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.cxf.prince.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/cxfjaxb/WebServiceSample?wsdl=WebServiceSample.wsdl" namespace="http://cxf.prince.com/" />
- <wsdl:message name="sayUserNameResponse">
<wsdl:part element="ns1:sayUserNameResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayResponse">
<wsdl:part element="ns1:sayResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsersResponse">
<wsdl:part element="ns1:findUsersResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="say">
<wsdl:part element="ns1:say" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayUserName">
<wsdl:part element="ns1:sayUserName" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsers">
<wsdl:part element="ns1:findUsers" name="parameters" />
</wsdl:message>
- <wsdl:binding name="WebServiceSampleImplServiceSoapBinding" type="ns1:WebServiceSample">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayUserName">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="sayUserName">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayUserNameResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="findUsers">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="findUsers">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="findUsersResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="say">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="say">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WebServiceSampleImplService">
- <wsdl:port binding="tns:WebServiceSampleImplServiceSoapBinding" name="WebServiceSampleImplPort">
<soap:address location="http://localhost:8080/cxfjaxb/WebServiceSample" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
如果实现一个返回List类型的接口,可以获得list的大小,但是list里的对象都为空;如果用楼主的listobject来封装,在执行listobject.getList()方法时,取得的为空
不知道这个应该怎么解决,谢谢!
26 楼
princekey
2008-09-08
为什么我得到的wsdl没有element的具体描述 ,好像userUTO文件和ListObject文件的注释没有起作用啊 谢谢大家帮忙看看
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions name="WebServiceSampleImplService" targetNamespace="http://impl.cxf.prince.com/" xmlns:ns1="http://cxf.prince.com/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.cxf.prince.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/cxfjaxb/WebServiceSample?wsdl=WebServiceSample.wsdl" namespace="http://cxf.prince.com/" />
- <wsdl:message name="sayUserNameResponse">
<wsdl:part element="ns1:sayUserNameResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayResponse">
<wsdl:part element="ns1:sayResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsersResponse">
<wsdl:part element="ns1:findUsersResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="say">
<wsdl:part element="ns1:say" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayUserName">
<wsdl:part element="ns1:sayUserName" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsers">
<wsdl:part element="ns1:findUsers" name="parameters" />
</wsdl:message>
- <wsdl:binding name="WebServiceSampleImplServiceSoapBinding" type="ns1:WebServiceSample">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayUserName">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="sayUserName">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayUserNameResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="findUsers">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="findUsers">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="findUsersResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="say">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="say">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WebServiceSampleImplService">
- <wsdl:port binding="tns:WebServiceSampleImplServiceSoapBinding" name="WebServiceSampleImplPort">
<soap:address location="http://localhost:8080/cxfjaxb/WebServiceSample" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions name="WebServiceSampleImplService" targetNamespace="http://impl.cxf.prince.com/" xmlns:ns1="http://cxf.prince.com/" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.cxf.prince.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:import location="http://localhost:8080/cxfjaxb/WebServiceSample?wsdl=WebServiceSample.wsdl" namespace="http://cxf.prince.com/" />
- <wsdl:message name="sayUserNameResponse">
<wsdl:part element="ns1:sayUserNameResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayResponse">
<wsdl:part element="ns1:sayResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsersResponse">
<wsdl:part element="ns1:findUsersResponse" name="parameters" />
</wsdl:message>
- <wsdl:message name="say">
<wsdl:part element="ns1:say" name="parameters" />
</wsdl:message>
- <wsdl:message name="sayUserName">
<wsdl:part element="ns1:sayUserName" name="parameters" />
</wsdl:message>
- <wsdl:message name="findUsers">
<wsdl:part element="ns1:findUsers" name="parameters" />
</wsdl:message>
- <wsdl:binding name="WebServiceSampleImplServiceSoapBinding" type="ns1:WebServiceSample">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="sayUserName">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="sayUserName">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayUserNameResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="findUsers">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="findUsers">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="findUsersResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="say">
<soap:operation soapAction="" style="document" />
- <wsdl:input name="say">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="sayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="WebServiceSampleImplService">
- <wsdl:port binding="tns:WebServiceSampleImplServiceSoapBinding" name="WebServiceSampleImplPort">
<soap:address location="http://localhost:8080/cxfjaxb/WebServiceSample" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
25 楼
liancg
2008-09-05
[color=darkred]org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxws][/color]
在用cxf 出现如上问题
请帮忙
在用cxf 出现如上问题
请帮忙
24 楼
liancg
2008-09-05
2008-09-05 14:24:02,859 ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed>
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxws]
Offending resource: class path resource [config/spring/applicationContext.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:261)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1111)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1104)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:133)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:389)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxws]
Offending resource: class path resource [config/spring/applicationContext.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:261)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1111)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1104)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:133)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:389)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
23 楼
tiyi
2008-04-23
居然每个方法的请求和返回值都包装成类型……太变态了
22 楼
gigi_ly180
2008-04-22
异常如上
21 楼
gigi_ly180
2008-04-22
我之前对这个理解错误了,目前我的实践问题如下,如果实现一个返回List类型的接口,可以获得list的大小,但是list里的对象都为空;如果用楼主的listobject来封装,在执行listobject.getList()方法时,取得的为空
不知道这个应该怎么解决,谢谢!
不知道这个应该怎么解决,谢谢!
20 楼
alexma
2008-04-22
引用
或者是将bus配置到JaxWsClientFactory中去
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName" default-lazy-init="true"> <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-extension-http.xml"/> <!-- ws client --> <bean id="identityValidateServiceClient" class="cn.org.coral.admin.service.IdentityValidateService" factory-bean="identityValidateServiceClientFactory" factory-method="create"> <property name="bus" value="#cxf" /> </bean> <bean id="identityValidateServiceClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="cn.org.coral.admin.service.IdentityValidateService" /> <property name="address" value="http://88.148.29.54:8080/coral/services/IdentityValidateService"/> </bean> </beans>
多谢楼上回复,按照你的配置,问题已经解决。但是你这段配置有一个错误
<property name="bus" value="#cxf" />
这一行应该配置在 identityValidateServiceClientFactory 这个 bean 中,如果配置在 identityValidateServiceClient 这个 bean ,会报找不到 property 的错误。
另外,应该写成 <property name="bus" ref="cxf">
按照你的写法会出现 classcast 错误:不能把 String 转成 Bus 对象。
我修改了你的配置,如下:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName" default-lazy-init="true"> <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-extension-http.xml"/> <!-- ws client --> <bean id="identityValidateServiceClient" class="cn.org.coral.admin.service.IdentityValidateService" factory-bean="identityValidateServiceClientFactory" factory-method="create"> </bean> <bean id="identityValidateServiceClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="cn.org.coral.admin.service.IdentityValidateService" /> <property name="address" value="http://88.148.29.54:8080/coral/services/IdentityValidateService"/> <property name="bus" ref="cxf" /> </bean> </beans>
19 楼
jnn
2008-04-22
alexma 写道
NPE 的错误似乎是由于 bus 没有被注入。但是按照楼主的帖子,并不需要注入这个才对。另外,我把 war 部署到 Jboss 4.2,启动服务器的时候,有这样的错误:
09:36:08,607 ERROR [STDERR] 2008-4-22 9:36:08 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:09,588 ERROR [STDERR] 2008-4-22 9:36:09 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:10,079 ERROR [STDERR] 2008-4-22 9:36:10 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /MoscoService
09:36:08,607 ERROR [STDERR] 2008-4-22 9:36:08 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:09,588 ERROR [STDERR] 2008-4-22 9:36:09 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:10,079 ERROR [STDERR] 2008-4-22 9:36:10 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /MoscoService
这些信息不是错误信息,这是因为CXF使用的是j.u.l 而不是Jboss使用的log4j。这样CXF的日志输出就被定向到了错误输出流里面了。 你看到这些日志应该是 INFO level的。
对于NPE,的确是楼主在配置client factory的过程中没有制定bus 而造成的。
如果不想指定bus你可以使用 来定义客户端。
<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:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <jaxws:client id="wsdlLocation" serviceClass="org.apache.hello_world_soap_http.Greeter" serviceName="s:SOAPService" endpointName="s:SoapPort" xmlns:s="http://apache.org/hello_world_soap_http" address="http://localhost:8080/simpleWithAddress" wsdlLocation="wsdl/hello_world.wsdl"/>
或者是将bus配置到JaxWsClientFactory中去
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName" default-lazy-init="true"> <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-extension-http.xml"/> <!-- ws client --> <bean id="identityValidateServiceClient" class="cn.org.coral.admin.service.IdentityValidateService" factory-bean="identityValidateServiceClientFactory" factory-method="create"> <property name="bus" ref="cxf" /> </bean> <bean id="identityValidateServiceClientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="cn.org.coral.admin.service.IdentityValidateService" /> <property name="address" value="http://88.148.29.54:8080/coral/services/IdentityValidateService"/> </bean> </beans>
18 楼
jnn
2008-04-22
gigi_ly180 写道
我想问下,这个要在http里怎么请求,在网上找了个HELLOWORLD的例子,但是只能在java运行,没有http请求路径(http://localhost:8080/cxf/ws/helloWorld?wsdl后面如何把参数传进去)
不明白你的问题是什么,你是问在调用的client的时候如何将wsdl 的url 传给client吗?
17 楼
alexma
2008-04-22
NPE 的错误似乎是由于 bus 没有被注入。但是按照楼主的帖子,并不需要注入这个才对。另外,我把 war 部署到 Jboss 4.2,启动服务器的时候,有这样的错误:
09:36:08,607 ERROR [STDERR] 2008-4-22 9:36:08 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:09,588 ERROR [STDERR] 2008-4-22 9:36:09 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:10,079 ERROR [STDERR] 2008-4-22 9:36:10 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /MoscoService
09:36:08,607 ERROR [STDERR] 2008-4-22 9:36:08 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:09,588 ERROR [STDERR] 2008-4-22 9:36:09 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
。。。。
09:36:10,079 ERROR [STDERR] 2008-4-22 9:36:10 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be /MoscoService
16 楼
gigi_ly180
2008-04-21
我想问下,这个要在http里怎么请求,在网上找了个HELLOWORLD的例子,但是只能在java运行,没有http请求路径(http://localhost:8080/cxf/ws/helloWorld?wsdl后面如何把参数传进去)
15 楼
alexma
2008-04-21
我用的就是 cxf2.0.5 + spring2.5.2 ,还是有NPE
14 楼
alexma
2008-04-18
我也考虑换 xfire 了,不知道 xfire 对 jax-ws 的系列标准支持的怎么样。
13 楼
peihexian
2008-04-17
如果只是要开发web serivices的话用xfire就够了吧?cxf 50M的运行库吓死人。
12 楼
alexma
2008-04-17
我也遇到了同样的问题。
p.s.我用的是 spring 2.5.2 + cxf 2.0.5 bundle
p.s.我用的是 spring 2.5.2 + cxf 2.0.5 bundle
11 楼
jacally
2008-03-27
引用
Java代码
信息: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: class com.color.webterminal.ws.dto.UserDTO nor any of its super class is known to this context.
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:207)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:63)
信息: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Marshalling Error: class com.color.webterminal.ws.dto.UserDTO nor any of its super class is known to this context.
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:207)
at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:63)
报上面错误啊,按照楼主的做的代码,Help me
有没有用annotation标注JAVA-XML映射呀?
/** * Web Service传输User信息的DTO. * * 分离entity类与web service接口间的耦合,隔绝entity类的修改对接口的影响. * 使用JAXB 2.0的annotation标注JAVA-XML映射,尽量使用默认约定. * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "User") public class UserDTO { protected Integer id; protected String name; public Integer getId() { return id; } public void setId(Integer value) { id = value; } public String getName() { return name; } public void setName(String value) { name = value; } }
10 楼
java_code
2008-03-24
我想问下,我最近看了别人的开发环境和开发录象,就是那个STP 环境下创建SOAP TOOL来做例子,遇到下面一些问题:
每一个接口生成一个WSDL文件,发布的时候有多少接口发布多少个项目,显然是错误了,应该怎么处理.
还有就是一般我们都是写好接口,用接口来生成WSDL ,那生成的WSDL 是怎么关联上我们的实现类,因为实现类都是我们自己的逻辑.就是在实现类的上面 + 类似这个句解吗:@WebService(endpointInterface = "com.gdcn.bpaf.service.ISysCatalogService")?
如果谁有自己写的测试项目的完整代码请给一份 非常感谢:mycart@126.com
每一个接口生成一个WSDL文件,发布的时候有多少接口发布多少个项目,显然是错误了,应该怎么处理.
还有就是一般我们都是写好接口,用接口来生成WSDL ,那生成的WSDL 是怎么关联上我们的实现类,因为实现类都是我们自己的逻辑.就是在实现类的上面 + 类似这个句解吗:@WebService(endpointInterface = "com.gdcn.bpaf.service.ISysCatalogService")?
如果谁有自己写的测试项目的完整代码请给一份 非常感谢:mycart@126.com
9 楼
ken2211
2008-03-23
信息: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Marshalling Error: class com.color.webterminal.ws.dto.UserDTO nor any of its super class is known to this context. at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:207) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:63)
报上面错误啊,按照楼主的做的代码,Help me
8 楼
jnn
2008-03-20
quaff 写道
jnn 写道
如果一定要用Spring 2.5.2 你也可以下载CXF2.0.5 snapshot[1] 试验一下。 我记得这个bug应该是修正了的。
[1] http://people.apache.org/repo/m2-snapshot-repository/org/apache/cxf/apache-cxf/2.0.5-incubator-SNAPSHOT/apache-cxf-2.0.5-incubator-20080319.024727-10.zip
[1] http://people.apache.org/repo/m2-snapshot-repository/org/apache/cxf/apache-cxf/2.0.5-incubator-SNAPSHOT/apache-cxf-2.0.5-incubator-20080319.024727-10.zip
用2.0.5是通过的,但是jira上面写的是2.0.4就fixed
Spring 2.5.2 是在2008年2月底发布的,而CXF 2.0.4 是在2008年1月底发布的。 JIRA上说2.0.4 fixed 的bug 应该是与Spring 2.5相关的bug。
发表评论
-
Android开发笔记
2009-10-19 09:11 16761.复制数据库文件: D:\Program Files\and ... -
天气预报的 WebService 服务网站
2009-06-29 10:53 0http://www.webxml.com.cn/WebSer ... -
在 Spring Web Flow 项目中应用 Hessian 服务
2009-05-21 11:19 2610原来作的一个项目因为页面跳转比较多,应用了S ... -
Spring Web Flow 2.0 入门 例子源码
2008-12-22 11:34 11826developerWorks 中有一篇教材讲解了 Spr ... -
JAD反编译工具
2008-05-29 11:33 5076This is README file for Jad - t ... -
压力测试与系统调优
2008-05-04 16:19 2356最近用loadrunne ... -
通过压力测试排查Bug(二)--排查Bug
2008-05-04 11:44 1852最近的一个项目 ... -
通过压力测试排查Bug(一)--测试过程
2008-05-04 11:05 1648最近的一个项目应用了Acegi作为安全框架,项目试运 ... -
WebService开发笔记 3 -- 增强访问 WebService 的安全性
2008-03-19 09:50 21893在WebService开发笔记 1中我们创建了一个WebSer ... -
WebService开发笔记 2 -- VS 2005 访问WebServcie更简单
2008-03-12 19:32 11222WebService开发笔记 2 -- VS 2005 访问W ... -
Tomcat 配置 -- 打开中文文件名的附件
2008-03-04 10:23 1986设计了文件上传的工具,但在Tomcat服务器上访问中文文件名的 ... -
常用的System.getProperty()
2008-03-02 11:53 29常用的System.getProperty()System.g ... -
CAS 单点登录安装笔记4 -- asp.net client端的设置
2008-03-02 11:51 16548CAS 单点登录安装笔记4 --- asp.net clien ... -
CAS 单点登录安装笔记3 -- 与acegi集成
2008-02-28 23:38 8327CAS 单点登录安装笔记3 -- 与acegi集成 在我的项 ... -
CAS 单点登录安装笔记2 -- 配置CAS,访问自己的用户表
2008-02-27 17:45 7049CAS 单点登录安装笔记2 1.修改cas/webapp/ ... -
CAS 单点登录安装笔记1 -- 基本设置与数字证书的安装
2008-02-26 16:35 5749安装JA-SIG SSO系统笔记1 (关于配置访问数据库的用 ... -
JAVA文档
2007-12-19 16:05 1209JAVA相关文档 http://www.lybbs.net/n ... -
Tomcat性能调优(2)
2007-12-19 15:37 2962原文出处:http://www.lybbs.n ... -
Spring 通过 Tomcat 6.0 下的数据源连接池 访问Oracle数据库
2007-12-17 18:26 6002头疼的老问题,折腾了一天,tomcat6.0数据源配置 to ... -
Tomcat数据源配置总结 转载
2007-12-17 16:52 1537成功配置环境Tomcat5.0.28+MSSQLServer2 ...
相关推荐
WebService CXF,全称Apache CXF,是一款开源的Java框架,用于构建和开发Web服务。它支持多种协议和规范,包括SOAP、RESTful、XML以及Web服务标准如WS-*。在"WebService CXF --- 传输文件MTOM"这个主题中,我们将...
4. **JAX-RS支持**:CXF也支持Java API for RESTful Web Services (JAX-RS),使开发RESTful Web服务变得简单。通过使用注解,开发者可以直接将Java方法映射到HTTP请求,实现资源导向的编程模型。 5. **数据绑定**:...
【标题】"webservice-cxf-spring-jar.zip" 是一个包含了使用Apache CXF与Spring框架集成开发Web服务的Java库集合。这个压缩包提供了一整套必要的JAR文件,以便于开发者在他们的项目中快速搭建和运行基于CXF的Web服务...
利用Apache CXF开发webservice接口需要用到的jar集合 cxf-core-3.0.15.jar cxf-rt-bindings-soap-3.0.15.jar cxf-rt-bindings-xml-3.0.15.jar cxf-rt-databinding-jaxb-3.0.15.jar cxf-rt-frontend-jaxws-3.0.15.jar...
Apache CXF 是一个开源的 Web 服务框架,用于构建和部署 SOAP 和 RESTful Web 服务。版本 2.3.5 是该框架的一个历史版本,它在当时提供了丰富的特性和功能,帮助开发者创建高效、灵活的网络应用。下面将详细阐述 ...
在本篇博文中,我们将深入探讨如何利用Apache CXF实现Web Service进行本地数据交互,特别是在PC端和Android端之间的通信。Apache CXF是一个开源框架,它允许开发人员创建和消费各种Web服务,包括SOAP和RESTful风格的...
WebService CXF是一个强大的开源框架,用于创建和消费Web服务。它允许开发者基于WSDL(Web Service Description Language)文件快速地生成服务端和客户端代码,极大地简化了Web服务的开发流程。在本篇中,我们将深入...
- 利用CXF的WS-Security插件进行安全性测试,确保通信过程中数据的完整性和保密性。 - 使用CXF的WSDL工具生成客户端代码,或者通过Postman等工具模拟请求,进行功能测试和性能测试。 5. **注意事项**: - 考虑到...
Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。这个项目源自XFire,并在2007年合并到Apache基金会,更名为CXF。CXF允许开发者以SOAP、RESTful、XML/HTTP、WS-*协议等多种方式来实现Web服务。在本...
2. **RESTful服务**:CXF也支持JAX-RS规范,使得开发RESTful Web服务变得简单。通过注解,开发者可以轻松地将普通的Java方法转换为HTTP操作。 3. **多种协议支持**:除了HTTP,CXF还支持其他传输协议,如JMS、XMPP...
cxf自动生成webservice客户端,apache-cxf-2.7.18最稳定的版本 apache cxf 框架wsdl2java命令的使用。 -encoding是指定编码类型; -p 指定包名 -d 指定生成目录 -all生成服务端和客户端代码 -...
本篇文章将深入探讨如何利用CXF来实现一个简单的WebService接口开发。 首先,我们要了解什么是CXF。CXF全称CXF Commons eXtensible Services Framework,它不仅支持SOAP(Simple Object Access Protocol)协议,还...
第一天: 什么是webservice? 从案例(便民查询网站)分析如何实现?...CXF开发webservice: CXF入门程序 Spring+cxf整合(重点) CXF发布rest的webservice。(重点) 综合案例: 实现便民查询网站
- Apache CXF是一个开源服务框架,由ObjectWeb Celtix和Codehaus XFire合并而成,提供了一种简单的方式来构建和开发WebService。 - CXF的核心组件是Bus,它类似于Spring的ApplicationContext,用于管理WebService...
在具体技术实现上,CXF使用了Spring框架,从而使得WebService的开发能够利用Spring的依赖注入、声明式事务等特性,增强了应用的可维护性和扩展性。 总结来说,Apache CXF是一个功能强大的WebService开发框架,它...
CXF Webservice 开发手册
【CXF Webservice初学笔记】 在IT行业中,Web服务是一种允许不同系统之间进行通信和交换数据的方法。Apache CXF是一个流行的开源框架,用于构建和部署Web服务。本笔记将探讨CXF Webservice的基础知识,包括其核心...
1. **配置CXF客户端**:首先,你需要创建一个CXF客户端实例,通过`JaxWsProxyFactoryBean`来设置服务地址和服务接口。同时,你可以配置ws-security的相关参数,如用户名、密码、加密算法等。 2. **创建安全上下文**...
这篇"Java+WebService利用(cxf)开发笔记"是一个宝贵的资源,尤其适合初学者理解和掌握CXF框架。 1. **Java WebService概述**:Java WebService是基于标准的、平台无关的方式来实现服务导向架构(SOA)。它通过WSDL...
Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和Web服务。这个"apache-cxf-3.1.6所有jar包"的压缩文件包含了CXF 3.1.6版本的所有核心库和依赖组件。在Java Web服务开发中,CXF扮演着重要...