CXF中的WebService错误

问题描述:

我在eclipse中创建了一个wsdl,并且我使用Apache CXF生成了类。之后,我将该服务集成到Jetty Server中。我实现了服务器端代码。我使用SOAP UI工具来测试服务器的实现。虽然我执行我收到错误的代码一样 错误:CXF中的WebService错误

WARN 23:47:30,240 | org.apache.cxf.aegis.type.TypeUtil | xsi:type absent, and no type available for sessionId 
WARN 23:47:30,240 | org.apache.cxf.aegis.type.TypeUtil | xsi:type absent, and no type available for serverUrlenter code here 
WARN 23:47:30,240 | org.apache.cxf.aegis.type.TypeUtil | xsi:type absent, and no type available for cipherTextValue 
INFO 23:47:44,188 | org.apache.cxf.interceptor.LoggingOutInterceptor | Outbound Message 

这里的sessionId,和的serverUrl是cipherTextValue的投入。我不知道如何解决这个错误。任何人都可以告诉我答案。我在这里*了。

示例XML请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dpa="http://ws.ciphercloud.com/dpaas/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <dpa:detokenizeRequest> 
     <sessionId>?</sessionId> 
     <serverUrl>?</serverUrl> 
     <!--1 or more repetitions:--> 
     <cipherTextValue>**ajgkjfagla009!</cipherTextValue> 
     </dpa:detokenizeRequest> 
    </soapenv:Body> 
</soapenv:Envelope> 

还有一两件事是有任何教程如何配置使用码头web服务。

请回复我。这是我的拦截...

Thanx提前。


感谢您的回复bmargulies。

我使用Aegis它工作正常,当我从那时生成从java代码的wsdl我的web服务工作正常。但是当时我从wsdl生成java代码,得到这种类型的错误。我正在发送我的appcontext.xml文件。

<?xml version="1.0" encoding="UTF-8"?> 

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:cxf="http://cxf.apache.org/core" xmlns:sec="http://cxf.apache.org/configuration/security" 
    xmlns:http="http://cxf.apache.org/transports/http/configuration" 
    xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration" 
    xmlns:jaxws="http://cxf.apache.org/jaxws" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-2.5.xsd 
     http://cxf.apache.org/core 
     http://cxf.apache.org/schemas/core.xsd 
     http://cxf.apache.org/jaxws 
     http://cxf.apache.org/schemas/jaxws.xsd 
     http://cxf.apache.org/configuration/security 
     http://cxf.apache.org/schemas/configuration/security.xsd 
     http://cxf.apache.org/transports/http/configuration 
     http://cxf.apache.org/schemas/configuration/http-conf.xsd 
     http://cxf.apache.org/transports/http-jetty/configuration 
     http://cxf.apache.org/schemas/configuration/http-jetty.xsd" 
    default-autowire="byName"> 

    <!-- Load CXF modules from cxf.jar --> 
    <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" /> 

    <!-- Enable message logging using the CXF logging feature --> 
    <cxf:bus> 
     <cxf:features> 
      <cxf:logging /> 
     </cxf:features> 
    </cxf:bus> 

    <!-- The service bean --> 
    <bean id="dataProtectionWebServiceImpl" class="com.ciphercloud.ws.dpaas.DataProtectionWebServiceImpl" /> 

    <!-- Aegis data binding --> 
    <bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding" 
     scope="prototype" /> 
    <bean id="jaxws-and-aegis-service-factory" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean" 
     scope="prototype"> 
     <property name="dataBinding" ref="aegisBean" /> 
     <property name="serviceConfigurations"> 
      <list> 
       <bean class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration" /> 
       <bean class="org.apache.cxf.aegis.databinding.AegisServiceConfiguration" /> 
       <bean class="org.apache.cxf.service.factory.DefaultServiceConfiguration" /> 
      </list> 
     </property> 
    </bean> 

    <!-- Service endpoint --> 
    <!-- 
     See http://incubator.apache.org/cxf/faq.html regarding CXF + Spring 
     AOP 
    --> 
    <jaxws:endpoint id="DataProtectionWebService" 
     implementorClass="com.ciphercloud.ws.dpaas.DataProtectionWebServiceImpl" 
     implementor="#dataProtectionWebServiceImpl" address="/ws"> 
     <jaxws:serviceFactory> 
      <ref bean="jaxws-and-aegis-service-factory" /> 
     </jaxws:serviceFactory> 
    </jaxws:endpoint> 
</beans> 

这是我的appcontext.xml。当java代码为wsdl时,这很好。但是当我从wsdl生成代码到java时,知道Aegis的问题。

正如你所说我会用jaxb而不是宙斯盾。同时有没有任何关于你的问题的教程,请给我链接。同时我也会看到这个jaxb。

+0

什么版本的CXF? – bmargulies 2011-12-19 19:01:40

您不能在WSDL优先服务中使用Aegis。你必须使用JAX-B。