I just wanted to add the trace in case that help someone:

9-Dec-2008 4:59:54 PM org.apache.cxf.transport.servlet.ServletController
invoke
WARNING: org.apache.cxf.transport.http.WSDLQueryHandler Exception caught
writing response.
org.apache.cxf.transport.http.WSDLQueryException: Exception occurred
while trying to process
http://localhost:8080/Pythia/services/Pythia?WSDL
    at
org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHa
ndler.java:214)
    at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:154)
    at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:175)
    at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer
vlet.java:157)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
    at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
    at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
    at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
    at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
    at java.lang.Thread.run(Thread.java:619)
Caused by: javax.wsdl.WSDLException: WSDLException:
faultCode=OTHER_ERROR: Can't find prefix for 'http://www.cdmv.com'.
Namespace prefixes must be set on the Definition object using the
addNamespace(...) method.
    at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source)
    at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source)
    at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown
Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printParts(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printMessages(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source)
    at
org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHa
ndler.java:171)
    ... 19 more
9-Dec-2008 4:59:54 PM org.apache.catalina.core.StandardWrapperValve
invoke
SEVERE: Servlet.service() for servlet CXFServlet threw exception
javax.wsdl.WSDLException: WSDLException: faultCode=OTHER_ERROR: Can't
find prefix for 'http://www.cdmv.com'. Namespace prefixes must be set on
the Definition object using the addNamespace(...) method.
    at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source)
    at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source)
    at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown
Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printParts(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printMessages(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
    at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source)
    at
org.apache.cxf.transport.http.WSDLQueryHandler.writeResponse(WSDLQueryHa
ndler.java:171)
    at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletControl
ler.java:154)
    at
org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFSe
rvlet.java:175)
    at
org.apache.cxf.transport.servlet.AbstractCXFServlet.doGet(AbstractCXFSer
vlet.java:157)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
    at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
    at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
    at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
    at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
    at java.lang.Thread.run(Thread.java:619)

-----Original Message-----
From: Ducharme, Ugo [mailto:[EMAIL PROTECTED] 
Sent: December 9, 2008 1:50 PM
To: users@cxf.apache.org
Subject: Namespace map for WSDL generation (using JAXB).

Hi,

I am migrating our webapps from apache-cxf-2.0.5-incubator to
apache-cxf-2.1.3. Everything seems OK except for a problem, when I ask
for a WSDL, it crashes with this message: "javax.wsdl.WSDLException:
WSDLException: faultCode=OTHER_ERROR: Can't find prefix for
'http://www.cdmv.com'. Namespace prefixes must be set on the Definition
object using the addNamespace(...) method."
 
My question is: how do I set a prefix to this namespace?

I have this spring configuration that defines my web service:

    <bean id="Pythia"
class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
init-method="create">
        <property name="serviceClass" value="com.cdmv.pythia.PythiaImpl"
/>
        <property name="serviceBean"><bean
class="com.cdmv.pythia.PythiaImpl"/></property>
        <property name="address" value="/Pythia"/>
        <property name="bus" ref="cxf"/>
        <property name="dataBinding">
            <bean class="org.apache.cxf.jaxb.JAXBDataBinding">
                <property name="namespaceMap">
                    <map>
                        <entry key="http://www.cdmv.com"; value="cdmv" />
                    </map>
                </property>
            </bean>
        </property>
        <property name="inInterceptors">
            <list>
                <bean id="iStoreJaasInterceptor"
class="com.cdmv.cxf.IStoreJaasInterceptor"
depends-on="jaasConfiguration">
                    <property name="loginContextName" value="Pythia" />
                    <property name="IStoreUrl">
                        <bean
class="org.springframework.jndi.JndiObjectFactoryBean">
                            <property name="jndiName"
value="java:comp/env/iStore/url" />
                        </bean>                    
                    </property>
                </bean>
            </list>
        </property>
        <property name="properties">
            <map>
                <entry key="jaxb.additionalContextClasses">
                    <bean class="com.cdmv.jaxb.ClassArrayFactoryBean">
                        <property name="classNames">
                            <list>
 
<value>com.cdmv.jaas.BasePrincipal</value>
 
<value>com.cdmv.jaas.istore.IStorePrincipal</value>
 
<value>com.cdmv.jaas.istore.IStoreAuthenticatedPrincipal</value>
                            </list>
                        </property>
                    </bean>
                </entry>
            </map>
        </property>
    </bean>
 
Has you can see in this config, I tried to add the namespace prefix in
the dataBindig definition but it does not work. This webservice is a
Java first development using annotations. I tried to use the @XmlNs
annotation but it does not help either.

The http://www.cdmv.com namespace comes from the tree classes in the
jaxb.additionalContextClasses property.

I am sure it's just a matter of putting the right definition in the
right place but I don't know where.

Reply via email to