Amar
Amar

Reputation: 763

WebService Error In CXF

I created a wsdl in eclipse and I generated classes using Apache CXF. And after that I integrated that service in Jetty Server. I implement server side code. I use SOAP UI tool to test the implementation of server. While I am executing the code i am getting the error like ERROR:

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

Here sessionId, serverUrl and cipherTextValue are the inputs. I don't know how to resolve this error. Can anybody tell me the answer. I blocked here.

Sample XML Request:

<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>

And one more thing is there any tutorials how to configure the webservices using Jetty.

Please reply to me. This is the blocker for me...

Thanx in advance.


Thanx for your reply bmargulies.

I use Aegis it works fine when i generate the wsdl from java code at that time my webservices are working fine. But i generated java code from the wsdl at that time i am getting this type of error. I am sending my appcontext.xml file.

<?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>

This is my appcontext.xml. This is fine when java code to wsdl. But know the problem with Aegis when i generated code from wsdl to java.

As you said i will use jaxb instead of Aegis. Meanwhile is there any tutorial related to your concern please send me the links. Meanwhile i will also see this jaxb.

Upvotes: 2

Views: 1590

Answers (1)

bmargulies
bmargulies

Reputation: 100186

You cannot use Aegis in a WSDL-first service. You have to use JAX-B.

Upvotes: 1

Related Questions