2011-12-19 13 views
2

eclipseでwsdlを作成し、Apache CXFを使用してクラスを生成しました。その後、私はJetty Serverにそのサービスを統合しました。私はサーバー側のコードを実装します。 SOAP UIツールを使用してサーバーの実装をテストします。私は ERRORのようなエラーを取得していたコードを実行していますが:CXFのウェブサービスエラー

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 

をここでセッションID、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のためのThanx。

私はWebサービスがうまく動作しているときにJavaコードからwsdlを生成するときにAegisを使用します。しかし、私はこのタイプのエラーを取得しているその時点で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の問題を知っています。

あなたが言ったように、私はAegisの代わりにjaxbを使用します。その間にあなたの心配に関連するチュートリアルは私にリンクを送ってください。一方、私はこのjaxbも見ます。

+0

CXFのどのバージョンですか? – bmargulies

答えて

1

WSDLの最初のサービスでは、Aegisを使用できません。 JAX-Bを使用する必要があります。