JMS Endpoints with Spring configuration
Hi guys, I´m trying configure an endpoint to use JMS queues with CXF. The use case is a client that sends a message to an activemq queue. I have a few questions about this: 1. Should I using CXF over JMS? I´m not sure if i should using CXF over HTTP, and for example Camel for routing the message towards the queue, instead. 2. Spring configuration I have tried to configure an endpoint over JMS with Spring but it doesn´t work. I used this documentation: http://cwiki.apache.org/CXF20DOC/jms-transport.html First of all, if I only use the configuration namespace xmlns:jms= http://cxf.apache.org/transports/jms; like this: ?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:jaxws=http://cxf.apache.org/jaxws; xmlns:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd; 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 / import resource=classpath:META-INF/cxf/cxf-extension-jms.xml/ jms:destination id={ http://services.com/}DummyJMSServiceImplPort.jms-destination; jms:address destinationStyle=queue jndiConnectionFactoryName=ConnectionFactory jndiDestinationName=foo.bar jms:JMSNamingProperty name=java.naming.factory.initial value= org.apache.activemq.jndi.ActiveMQInitialContextFactory/ jms:JMSNamingProperty name=java.naming.provider.url value=tcp://localhost:2212/ /jms:address /jms:destination /beans i get this error: The matching wildcard is strict, but no declaration can be found for element 'jms:destination'. Then i tried to add the schemaLocation like this: 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:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd; but then i get this error: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '{ http://services.com/}DummyJMSServiceImplPort.jms-destination' is not a valid value for 'NCName'. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java:236)... Please, i need help to continue, any ideas?. Thanks. Juanjo
Re: JMS Endpoints with Spring configuration
Hi Juanjo, Use the name attribute instead: jms:destination name={ http://services.com/}DummyJMSServiceImplPort.jms-destination; /jms:destination Cheers, Andrea. but then i get this error: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '{ http://services.com/}DummyJMSServiceImplPort.jms-destination' is not a valid value for 'NCName'. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java:236)... Please, i need help to continue, any ideas?. Thanks. Juanjo IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: JMS Endpoints with Spring configuration
Hi, You can use CXF over JMS, we support JMS transport in CXF. There are some JMS spring configuration updates in CXF 2.0, you need to change jms:destination id={ http://services.com/}DummyJMSServiceImplPort.jms-destination; to jms:destination name={ http://services.com/}DummyJMSServiceImplPort.jms-destination; . It just need to change the 'id' to 'name'. I will update the wiki for it. BTW, if you just do not want to use servlet transport , you could remove import resource=classpath:META-INF/cxf/cxf-servlet.xml / from the spring configuration file. Cheers, Willem. Juan José Vázquez Delgado wrote: Hi guys, I´m trying configure an endpoint to use JMS queues with CXF. The use case is a client that sends a message to an activemq queue. I have a few questions about this: 1. Should I using CXF over JMS? I´m not sure if i should using CXF over HTTP, and for example Camel for routing the message towards the queue, instead. 2. Spring configuration I have tried to configure an endpoint over JMS with Spring but it doesn´t work. I used this documentation: http://cwiki.apache.org/CXF20DOC/jms-transport.html First of all, if I only use the configuration namespace xmlns:jms= http://cxf.apache.org/transports/jms; like this: ?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:jaxws=http://cxf.apache.org/jaxws; xmlns:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd; 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 / import resource=classpath:META-INF/cxf/cxf-extension-jms.xml/ jms:destination id={ http://services.com/}DummyJMSServiceImplPort.jms-destination; jms:address destinationStyle=queue jndiConnectionFactoryName=ConnectionFactory jndiDestinationName=foo.bar jms:JMSNamingProperty name=java.naming.factory.initial value= org.apache.activemq.jndi.ActiveMQInitialContextFactory/ jms:JMSNamingProperty name=java.naming.provider.url value=tcp://localhost:2212/ /jms:address /jms:destination /beans i get this error: The matching wildcard is strict, but no declaration can be found for element 'jms:destination'. Then i tried to add the schemaLocation like this: 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:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd; but then i get this error: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: '{ http://services.com/}DummyJMSServiceImplPort.jms-destination' is not a valid value for 'NCName'. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException (ErrorHandlerWrapper.java:236)... Please, i need help to continue, any ideas?. Thanks. Juanjo
Re: Setting up eclipse tutorial
Basically You need to run mvn install first to down load and build the project first and then run mvn eclipse:eclispse to setup the eclipse workspace. mvn -Pfastinstall Means you run 'mvn install' and skip the check style , pmd checking and testing. Then you run mvn -Psetup.eclipse It will copy the check style, pmd configuration files to your eclipse workspace and run 'mvn eclipse:eclipse' So if you just got the source code, you need to run the fellowing commands one by one. mvn -Pfastinstall mvn -Psetup.eclipse Willem. Joshua Jackson wrote: Dear all, Does anyone has problem with tutorial setting up eclipse located at http://incubator.apache.org/cxf/setting-up-eclipse.html ? I don't quite get it. What does these maven command: mvn -Pfastinstall mvn -Psetup.eclipse has got to do with the eclipse plugin-in setup? Perhaps before executing those maven commands, it should write down how to set up the maven first so new user won't be confused. Second, those maven commands doesn't work for me. This is what I get from my console: $ mvn -Psetup.eclipse [INFO] Scanning for projects... [INFO] [ERROR] BUILD FAILURE [INFO] [INFO] You must specify at least one goal. Try 'install' [INFO] [INFO] For more information, run Maven with the -e switch [INFO] [INFO] Total time: 1 second [INFO] Finished at: Tue Jul 24 15:32:35 ICT 2007 [INFO] Final Memory: 1M/2M [INFO] Am I missing something here? Thanks in advance. :)
Re: POSTing customer using REST
Good pointer...had to introduce to the classpath the compiled file package-info.java with the following content @javax.xml.bind.annotation.XmlSchema( namespace = http://customer.acme.com;, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED ) package com.acme.customer; and all is fine. Thanks. On Jul 24, 2007, at 2:38 AM, Liu, Jervis wrote: Hi Mansour, do you have targetNamespace attribute defined in your WebService annotation, such as @WebService(targetNamespace = http://book.acme.com;)? This targetNamespace is needed for marshal/ unmarshal between input and your Customer object. There were similar problem reported in the mailing list when targetNamespace is missing. If this does not help, you may want to post out your service interface/impl code. Thanks, Jervis -Original Message- From: Mansour Raad [mailto:[EMAIL PROTECTED] Sent: 2007?7?24? 9:49 To: cxf-user@incubator.apache.org Subject: POSTing customer using REST Given the customer http rest sample, I defined a spring config with the following endpoint: jaxws:endpoint id=customerServiceXML implementor=com.esri.aws.CustomerService address=/xml bindingUri=http://apache.org/cxf/binding/http; jaxws:serviceFactory bean class=org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean property name=wrapped value=false/ /bean /jaxws:serviceFactory /jaxws:endpoint I'm bootstrapping CXF from tomcat using the following web.xml context-param param-namecontextConfigLocation/param-name param-valueclasspath:applicationContext.xml/param-value /context-param listener display-nameSpring Context Loader/display-name listener- classorg.springframework.web.context.ContextLoaderListener/listener- class /listener servlet servlet-nameCXFServlet/servlet-name servlet-classorg.apache.cxf.transport.servlet.CXFServlet/ servlet-class load-on-startup1/load-on-startup /servlet servlet-mapping servlet-nameCXFServlet/servlet-name url-pattern/cxf/*/url-pattern /servlet-mapping When I post a request using wget --post-file add.xml http://localhost:8080/cxf/xml/customers I can see the function being called, however the name is null in the customer argument any clues Thanks. Mansour :-) IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland Mansour :-)
Re: WSS4J implementation in CXF
Hi Fred, I was involved in Header support stuff so I am looking into CXF--790. One alternative I am trying to see if it can be fixed in general with some kind of marking for application specific headers and CXF headers and filtering them while copying into JAX-WS responseContext or WebServiceContext so that only application specific headers can be sent to application layer and it won't contain any internal CXF headers. Regards, Ulhas Bhole Fred Dushin wrote: Thanks, Dan. There's an issue with the WSS4J interceptor, which I encountered when testing interop with WCF-3.0 WS-Sec 1.0 scenarios. The issue resulted in my posting http://issues.apache.org/jira/browse/CXF-790 but I'm told this behavior in CXF is by design, and hence (I suspect) may not be fixed in general, so we may need to modify the WSS4J interceptor, itself. The problem boils down to the fact that the CXF runtime is copying headers that are sent from the client, and processed in the server on the inbound side, onto the outbound response context. As a consequence, the client gets back headers it sent to the server. Some of these headers have things like key references (which in general the client can't resolve), or they reference protected parts which can't be resolved, because the wsu:id refers to elements in the input, not in the output. The solution should probably be to remove any security headers from the message on the inbound side, after they have been processed, though this will have consequences for entities downstream from the WSS4J interceptor; this in interceptor is typically fairly close to the wire, so anyone who previously may have had an interest in these headers will be sunk. (I know of no such entities, but I don't know all deployments.) It's also sometimes difficult to figure out which headers to remove, since the return values from WSS4J may not be sufficiently informative. There are some other issues with the checkReceiverResults operation, which our WSS4J in-interceptor inherits from WSHandler -- it's particularly sensitive to the ordering of elements, in cases where it probably doesn't need to be, and which introduces issues when trying to service requests from multiple toolkits, which all have their own peculiar ordering characteristics. Something we're looking at, in WSS4J. -Fred On Jul 21, 2007, at 12:09 PM, Dan Diephouse wrote: Hiya, Thanks for reporting this. I've fixed this in SVN now. You can either compile from SVN or I can ping you once a new snapshot is uploaded (probably monday). Cheers, - Dan On 7/21/07, Dale Peakall [EMAIL PROTECTED] wrote: No, this won't work. I posted an e-mail on the dev list about this yesterday. The problem is the WSS4JInInterceptor doesn't accept a MapString, Object only a MapString, String so there is no way to ref an instantiated object. Julio Arias wrote: Hello - You could use something like this, but there is a bug in the WSS4JInInterceptor https://issues.apache.org/jira/browse/CXF-819 that needs to be address beffore you can use a password callback by reference jaxws:endpoint id=metadataService address=/MetadataService implementor=#metadataServiceImpl jaxws:inInterceptors bean class=org.apache.cxf.binding.soap.saaj.SAAJInInterceptor/ bean class=org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor property name=properties map entry key=action value=UsernameToken/ entry key=passwordType value=PasswordText/ entry key=passwordCallbackRef value-ref=authenticationCallbackHandler/ /map /property /bean /jaxws:inInterceptors /jaxws:endpoint On Jul 20, 2007, at 2:32 PM, gdprao wrote: I have used spring and Xfire combination to configure WSS4J for user authentication with WSS4JInHandler. I would like to know whether it is supported in CXF. Appreciate if someone could help me out on this. My current configuration is as follows: property name=inHandlers list bean class=org.codehaus.xfire.util.dom.DOMInHandler / bean class=org.codehaus.xfire.security.wss4j.WSS4JInHandler property name=properties map entry key=passwordCallbackRef bean class=com.mydomain.security.PasswordHandler /bean /entry entry key=action value=UsernameToken / /map /property /bean bean class=com.mydomain.security.ValidateUserTokenHandler / /list /property -- View this message in context:
No conduit initiator was found when calling a WebService from a CXF WebService
Hello I developed a simple CXF Web Service which is deployed as a WAR-File on a JBoss Java EE Application Server (Spring Configuration). The Service works fine. But if i try to call another WebService from this WebService, i get the following error (see stack trace bellow): No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http Here is my Java Code for calling the service: Service service = Service.create(WSDL_URL, new QName(http://test.sts.stvbe.dvbern.ch;, HelloWorldServiceService)); HelloWorldService helloWorldService = service.getPort(HelloWorldService.class); helloWorldService.helloWorld(); Does anybody know where this error comes from? Is there any special configuration required for calling a service from a service? Regards, Matthias -- Matthias Germann DV Bern AG mailto:[EMAIL PROTECTED] http://www.dvbern.ch Postadresse: Nussbaumstrasse 21, Postfach 106, 3000 Bern 22 Direktwahl: +41 31 378 24 60 Telefonzentrale: +41 31 378 24 24, Telefax: +41 31 378 24 74 12:24:42,674 ERROR [STDERR] 24.07.2007 12:24:42 org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http. at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:85) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:56) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:87) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:67) at org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:100) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:224) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137) at org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261) at org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at ch.dvbern.stvbe.security.saml.filter.SecurityContextFilter.doFilter(SecurityContextFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.xml.ws.soap.SOAPFaultException: No conduit initiator was found for the namepsace
Re: No conduit initiator was found when calling a WebService from a CXF WebService
Hi Matthias, Ensure that cxf-rt-transports-http-2.1-incubator-SNAPSHOT.jar and cxf-rt-transports-http-jetty-2.1-incubator-SNAPSHOT.jar is on your servlet container classpath. Best Regards Freeman [EMAIL PROTECTED] wrote: Hello I developed a simple CXF Web Service which is deployed as a WAR-File on a JBoss Java EE Application Server (Spring Configuration). The Service works fine. But if i try to call another WebService from this WebService, i get the following error (see stack trace bellow): No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http Here is my Java Code for calling the service: Service service = Service.create(WSDL_URL, new QName(http://test.sts.stvbe.dvbern.ch;, HelloWorldServiceService)); HelloWorldService helloWorldService = service.getPort(HelloWorldService.class); helloWorldService.helloWorld(); Does anybody know where this error comes from? Is there any special configuration required for calling a service from a service? Regards, Matthias -- Matthias Germann DV Bern AG mailto:[EMAIL PROTECTED] http://www.dvbern.ch Postadresse: Nussbaumstrasse 21, Postfach 106, 3000 Bern 22 Direktwahl: +41 31 378 24 60 Telefonzentrale: +41 31 378 24 24, Telefax: +41 31 378 24 74 12:24:42,674 ERROR [STDERR] 24.07.2007 12:24:42 org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http. at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:85) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:56) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:87) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:206) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:67) at org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:100) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:224) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137) at org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261) at org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at ch.dvbern.stvbe.security.saml.filter.SecurityContextFilter.doFilter(SecurityContextFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at
Antwort: Re: No conduit initiator was found when calling a WebService from a CXF WebService
Hi, Thanks for your response. I'm using the Release 2.0 of Apache CXF. I can't find the mentioned jar files. I don't think that a jar file is missing because i can call the other WebService with a standalone client which has the same jar files in the classpath as the web application. Regards, Matthias -- Matthias Germann DV Bern AG mailto:[EMAIL PROTECTED] http://www.dvbern.ch Postadresse: Nussbaumstrasse 21, Postfach 106, 3000 Bern 22 Direktwahl: +41 31 378 24 60 Telefonzentrale: +41 31 378 24 24, Telefax: +41 31 378 24 74 Freeman Fang [EMAIL PROTECTED] schrieb am 24.07.2007 13:38:06: Hi Matthias, Ensure that cxf-rt-transports-http-2.1-incubator-SNAPSHOT.jar and cxf-rt-transports-http-jetty-2.1-incubator-SNAPSHOT.jar is on your servlet container classpath. Best Regards Freeman [EMAIL PROTECTED] wrote: Hello I developed a simple CXF Web Service which is deployed as a WAR-File on a JBoss Java EE Application Server (Spring Configuration). The Service works fine. But if i try to call another WebService from this WebService, i get the following error (see stack trace bellow): No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http Here is my Java Code for calling the service: Service service = Service.create(WSDL_URL, new QName(http://test.sts.stvbe.dvbern.ch;, HelloWorldServiceService)); HelloWorldService helloWorldService = service.getPort(HelloWorldService.class); helloWorldService.helloWorld(); Does anybody know where this error comes from? Is there any special configuration required for calling a service from a service? Regards, Matthias -- Matthias Germann DV Bern AG mailto:[EMAIL PROTECTED] http://www.dvbern.ch Postadresse: Nussbaumstrasse 21, Postfach 106, 3000 Bern 22 Direktwahl: +41 31 378 24 60 Telefonzentrale: +41 31 378 24 24, Telefax: +41 31 378 24 74 12:24:42,674 ERROR [STDERR] 24.07.2007 12:24:42 org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: No conduit initiator was found for the namepsace http://schemas.xmlsoap.org/soap/http. at org.apache.cxf.service.invoker.AbstractInvoker. invoke(AbstractInvoker.java:85) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:82) at org.apache.cxf.service.invoker.AbstractInvoker. invoke(AbstractInvoker.java:56) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1. run(ServiceInvokerInterceptor.java:56) at org.apache.cxf.workqueue.SynchronousExecutor. execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor. handleMessage(ServiceInvokerInterceptor.java:87) at org.apache.cxf.phase.PhaseInterceptorChain. doIntercept(PhaseInterceptorChain.java:206) at org.apache.cxf.transport.ChainInitiationObserver. onMessage(ChainInitiationObserver.java:67) at org.apache.cxf.transport.servlet.ServletDestination. doMessage(ServletDestination.java:100) at org.apache.cxf.transport.servlet.ServletController. invokeDestination(ServletController.java:224) at org.apache.cxf.transport.servlet.ServletController. invoke(ServletController.java:137) at org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:261) at org.apache.cxf.transport.servlet.CXFServlet.doPost(CXFServlet.java:239) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain. internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain. doFilter(ApplicationFilterChain.java:173) at ch.dvbern.stvbe.security.saml.filter.SecurityContextFilter. doFilter(SecurityContextFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain. internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain. doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter. doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain. internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain. doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve. invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve. invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve. invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.
Re: JMS Endpoints with Spring configuration
Thank you guys, it looks that this configuration works: ?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:jaxws=http://cxf.apache.org/jaxws; xmlns:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd; 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-jms.xml/ jms:destination name={ http://services.com/}DummyJMSServiceImplPort.jms-destination; jms:address destinationStyle=queue jndiConnectionFactoryName=ConnectionFactory jndiDestinationName=foo.bar jms:JMSNamingProperty name=java.naming.factory.initial value= org.apache.activemq.jndi.ActiveMQInitialContextFactory/ jms:JMSNamingProperty name=java.naming.provider.url value=tcp://localhost:2212/ /jms:address /jms:destination /beans Although i´m very confused about how can i make a client to this Service JMS Endpoint. I have been looking the sample jms_queue in the cxf 2.0distribution but it´s not clear for me doing it with the Spring configuration. A few questions: 1. Should I have an implementor class, i mean, an DummyJMSServiceImpl class? 2. Should I have a DummyJMSService interface for the server and client? 2. Should I have a wsdl file? I´d like having similar to an HTTP client like this: ?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:jaxws=http://cxf.apache.org/jaxws; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd; bean id=penelope.wsclient.dummyServiceClient class= es.cm.penelope.services.DummyService factory-bean=penelope.wsclient.dummyServiceClientFactory factory-method=create/ bean id=penelope.wsclient.dummyServiceClientFactory class=org.apache.cxf.jaxws.JaxWsProxyFactoryBean property name=serviceClass value= es.cm.penelope.services.DummyService / property name=address value= http://toshiba001:8080/penelope-wsprovider/DummyService; / /bean /beans Is this possible?. Do you have a JMS sample with Spring configuration?. (I only want to send a message to a queue, snif) Thanks a lot!. On 7/24/07, Willem Jiang [EMAIL PROTECTED] wrote: Hi, You can use CXF over JMS, we support JMS transport in CXF. There are some JMS spring configuration updates in CXF 2.0, you need to change jms:destination id={ http://services.com/}DummyJMSServiceImplPort.jms-destination; to jms:destination name={ http://services.com/}DummyJMSServiceImplPort.jms-destination; . It just need to change the 'id' to 'name'. I will update the wiki for it. BTW, if you just do not want to use servlet transport , you could remove import resource=classpath:META-INF/cxf/cxf-servlet.xml / from the spring configuration file. Cheers, Willem. Juan José Vázquez Delgado wrote: Hi guys, I´m trying configure an endpoint to use JMS queues with CXF. The use case is a client that sends a message to an activemq queue. I have a few questions about this: 1. Should I using CXF over JMS? I´m not sure if i should using CXF over HTTP, and for example Camel for routing the message towards the queue, instead. 2. Spring configuration I have tried to configure an endpoint over JMS with Spring but it doesn´t work. I used this documentation: http://cwiki.apache.org/CXF20DOC/jms-transport.html First of all, if I only use the configuration namespace xmlns:jms= http://cxf.apache.org/transports/jms; like this: ?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:jaxws=http://cxf.apache.org/jaxws; xmlns:jms=http://cxf.apache.org/transports/jms; xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd; 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 / import resource=classpath:META-INF/cxf/cxf-extension-jms.xml/ jms:destination id={
Re: WSS4J implementation in CXF
Thanks, Ulhas. I'll work to implement some system tests, then, in CXF, which will exercise the WSS4J interceptor in such a way that it reproduces the bug. I'll add the tests as a patch to the ticket, so that when we fix the issue, the tests will pass. -Fred On Jul 24, 2007, at 6:51 AM, Ulhas Bhole(IONA) wrote: Hi Fred, I was involved in Header support stuff so I am looking into CXF--790. One alternative I am trying to see if it can be fixed in general with some kind of marking for application specific headers and CXF headers and filtering them while copying into JAX-WS responseContext or WebServiceContext so that only application specific headers can be sent to application layer and it won't contain any internal CXF headers. Regards, Ulhas Bhole Fred Dushin wrote: Thanks, Dan. There's an issue with the WSS4J interceptor, which I encountered when testing interop with WCF-3.0 WS-Sec 1.0 scenarios. The issue resulted in my posting http://issues.apache.org/jira/browse/CXF-790 but I'm told this behavior in CXF is by design, and hence (I suspect) may not be fixed in general, so we may need to modify the WSS4J interceptor, itself. The problem boils down to the fact that the CXF runtime is copying headers that are sent from the client, and processed in the server on the inbound side, onto the outbound response context. As a consequence, the client gets back headers it sent to the server. Some of these headers have things like key references (which in general the client can't resolve), or they reference protected parts which can't be resolved, because the wsu:id refers to elements in the input, not in the output. The solution should probably be to remove any security headers from the message on the inbound side, after they have been processed, though this will have consequences for entities downstream from the WSS4J interceptor; this in interceptor is typically fairly close to the wire, so anyone who previously may have had an interest in these headers will be sunk. (I know of no such entities, but I don't know all deployments.) It's also sometimes difficult to figure out which headers to remove, since the return values from WSS4J may not be sufficiently informative. There are some other issues with the checkReceiverResults operation, which our WSS4J in-interceptor inherits from WSHandler -- it's particularly sensitive to the ordering of elements, in cases where it probably doesn't need to be, and which introduces issues when trying to service requests from multiple toolkits, which all have their own peculiar ordering characteristics. Something we're looking at, in WSS4J. -Fred On Jul 21, 2007, at 12:09 PM, Dan Diephouse wrote: Hiya, Thanks for reporting this. I've fixed this in SVN now. You can either compile from SVN or I can ping you once a new snapshot is uploaded (probably monday). Cheers, - Dan On 7/21/07, Dale Peakall [EMAIL PROTECTED] wrote: No, this won't work. I posted an e-mail on the dev list about this yesterday. The problem is the WSS4JInInterceptor doesn't accept a MapString, Object only a MapString, String so there is no way to ref an instantiated object. Julio Arias wrote: Hello - You could use something like this, but there is a bug in the WSS4JInInterceptor https://issues.apache.org/jira/browse/ CXF-819 that needs to be address beffore you can use a password callback by reference jaxws:endpoint id=metadataService address=/MetadataService implementor=#metadataServiceImpl jaxws:inInterceptors bean class=org.apache.cxf.binding.soap.saaj.SAAJInInterceptor/ bean class=org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor property name=properties map entry key=action value=UsernameToken/ entry key=passwordType value=PasswordText/ entry key=passwordCallbackRef value-ref=authenticationCallbackHandler/ /map /property /bean /jaxws:inInterceptors /jaxws:endpoint On Jul 20, 2007, at 2:32 PM, gdprao wrote: I have used spring and Xfire combination to configure WSS4J for user authentication with WSS4JInHandler. I would like to know whether it is supported in CXF. Appreciate if someone could help me out on this. My current configuration is as follows: property name=inHandlers list bean class=org.codehaus.xfire.util.dom.DOMInHandler / bean class=org.codehaus.xfire.security.wss4j.WSS4JInHandler property name=properties map entry key=passwordCallbackRef bean class=com.mydomain.security.PasswordHandler /bean /entry entry key=action value=UsernameToken / /map
FW: Tools Error : Can not found wsdl plugin jms-javax.wsdl.Port for wsdl extension point interface javax.wsdl.Port
Hi there, Has anyone seen the following error with wsdl2service? Am trying to generate a JMS service but it's not working... I get the same kind of error (Tools Error: Can not found wsdl plugin...) when I try and run the wsdl2xml tool... C:\celtix_exercises\invoicing-student\wsdl\playwsdl2service -transport jms -e InvoicingService -p blah -n InvoicingSOAPBinding InvoicingService.wsdl Tools Error : Can not found wsdl plugin jms-javax.wsdl.Port for wsdl extension point interface javax.wsdl.Port Am using JDK 1.5.09... Any help would be greatly appreciated! Thanks, Ade IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
RE: Cannot find the declaration of element 'wsdl:definitions'
Hi Christian, I think this could be down to the fact that you haven't declared a target namespace or a default namespace, avoiding this will probably cause problems with the HelloWorldPort input message. Try sticking something like this into the definitions element: wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; xmlns=http://tempuri.org; targetNamespace=http://tempuri.org; . Regards, - Martin -Original Message- From: Christian Vest Hansen [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 24, 2007 4:15 PM To: cxf-user@incubator.apache.org Subject: Cannot find the declaration of element 'wsdl:definitions' Hi, Using the (currently) latest snapshot, namely apache-cxf-2.1-incubator-20070720.011624-1(.zip). An error (see bellow) is produced when you expose the following WSDL file to the wsdlvalidator application: = The WSDL = ?xml version=1.0 encoding=UTF-8? wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; wsdl:message name=Msg wsdl:part name=msg type=xs:string/ /wsdl:message wsdl:portType name=HelloWorldPort wsdl:operation name=SayHello wsdl:input message=Msg/ wsdl:output message=Msg/ /wsdl:operation /wsdl:portType wsdl:binding name=HelloWorldSOAP type=HelloWorldPort soap:binding style=rpc transport=http://schemas.xmlsoap.org/soap/http/ wsdl:operation name=SayHello soap:operation soapAction=http://unwire.dk/SayHello/ wsdl:input soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:input wsdl:output soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:output /wsdl:operation /wsdl:binding wsdl:service name=HelloWorld wsdl:port name=HelloWorldDev binding=HelloWorldSOAP soap:address location=http://localhost:8080/Services/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions = The Error = wsdlvalidator -verbose /Users/vest/workspace/Service/src/main/resources/HelloWorld.wsdl wsdlvalidator - 2.1-incubator-SNAPSHOT WSDLValidator Error : line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.wsd l: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. [+] Verbose turned on org.apache.cxf.tools.common.ToolException: line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.wsd l: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaV alidator.java:202) at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaV alidator.java:118) at org.apache.cxf.tools.validator.internal.SchemaValidator.isValid(SchemaVa lidator.java:102) at org.apache.cxf.tools.validator.internal.WSDL11Validator.isValid(WSDL11Va lidator.java:113) at org.apache.cxf.tools.validator.WSDLValidator.execute(WSDLValidator.java: 65) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 83) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 52) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 39) at org.apache.cxf.tools.validator.WSDLValidator.main(WSDLValidator.java:93) Any idears? I honestly can't see what would be wrong with my WSDL. -- Venlig hilsen / Kind regards, Christian Vest Hansen. IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Cannot find the declaration of element 'wsdl:definitions'
That made no difference. :( 2007/7/24, Murphy, Martin [EMAIL PROTECTED]: Hi Christian, I think this could be down to the fact that you haven't declared a target namespace or a default namespace, avoiding this will probably cause problems with the HelloWorldPort input message. Try sticking something like this into the definitions element: wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; xmlns=http://tempuri.org; targetNamespace=http://tempuri.org; . Regards, - Martin -Original Message- From: Christian Vest Hansen [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 24, 2007 4:15 PM To: cxf-user@incubator.apache.org Subject: Cannot find the declaration of element 'wsdl:definitions' Hi, Using the (currently) latest snapshot, namely apache-cxf-2.1-incubator-20070720.011624-1(.zip). An error (see bellow) is produced when you expose the following WSDL file to the wsdlvalidator application: = The WSDL = ?xml version=1.0 encoding=UTF-8? wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; wsdl:message name=Msg wsdl:part name=msg type=xs:string/ /wsdl:message wsdl:portType name=HelloWorldPort wsdl:operation name=SayHello wsdl:input message=Msg/ wsdl:output message=Msg/ /wsdl:operation /wsdl:portType wsdl:binding name=HelloWorldSOAP type=HelloWorldPort soap:binding style=rpc transport=http://schemas.xmlsoap.org/soap/http/ wsdl:operation name=SayHello soap:operation soapAction=http://unwire.dk/SayHello/ wsdl:input soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:input wsdl:output soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:output /wsdl:operation /wsdl:binding wsdl:service name=HelloWorld wsdl:port name=HelloWorldDev binding=HelloWorldSOAP soap:address location=http://localhost:8080/Services/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions = The Error = wsdlvalidator -verbose /Users/vest/workspace/Service/src/main/resources/HelloWorld.wsdl wsdlvalidator - 2.1-incubator-SNAPSHOT WSDLValidator Error : line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.wsd l: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. [+] Verbose turned on org.apache.cxf.tools.common.ToolException: line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.wsd l: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaV alidator.java:202) at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(SchemaV alidator.java:118) at org.apache.cxf.tools.validator.internal.SchemaValidator.isValid(SchemaVa lidator.java:102) at org.apache.cxf.tools.validator.internal.WSDL11Validator.isValid(WSDL11Va lidator.java:113) at org.apache.cxf.tools.validator.WSDLValidator.execute(WSDLValidator.java: 65) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 83) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 52) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java: 39) at org.apache.cxf.tools.validator.WSDLValidator.main(WSDLValidator.java:93) Any idears? I honestly can't see what would be wrong with my WSDL. -- Venlig hilsen / Kind regards, Christian Vest Hansen. IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland -- Venlig hilsen / Kind regards, Christian Vest Hansen.
Aegis bindings
I have enabled aegis bindings using the following xml configuration snippet. jaxws:endpoint id=CollectiveServices implementor=#serviceBean bindingUri=http://apache.org/cxf/binding/http; address=/cxf/CollectiveServices jaxws:serviceFactory bean class= org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean property name=wrapped value=true / property name=dataBinding ref=aegisBean/ /bean /jaxws:serviceFactory /jaxws:endpoint bean id=aegisBean class= org.apache.cxf.aegis.databinding.AegisDatabinding/ My web service api has an interface named SearchField with three implementations. The interface is used in a number of different ways. Sometimes as in incoming list and other times as a returned list. I am getting the following exception from the AegisDataBinding java.lang.RuntimeException: Schema for namespace 'urn:search.api' already contains type 'ArrayOfSearchField at org.apache.ws.commons.schema.XmlSchema.addType(XmlSchema.java:229) at org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement( SchemaBuilder.java:139) at org.apache.ws.commons.schema.XmlSchemaCollection.read( XmlSchemaCollection.java:315) at org.apache.cxf.aegis.databinding.AegisDatabinding.createSchemas( AegisDatabinding.java:291) at org.apache.cxf.aegis.databinding.AegisDatabinding.initialize( AegisDatabinding.java:162) -- Is this a problem with my namespaces? Or is aegis trying to create two different SearchField complex types when it should be only creating one? Dave Kallstrom
Re: Cannot find the declaration of element 'wsdl:definitions'
I just tried this with trunk and it seems OK. Passed Validation : Valid WSDL I'll start getting a new snapshot deployed. (takes an hour or so) Dan On Tuesday 24 July 2007 11:14, Christian Vest Hansen wrote: Hi, Using the (currently) latest snapshot, namely apache-cxf-2.1-incubator-20070720.011624-1(.zip). An error (see bellow) is produced when you expose the following WSDL file to the wsdlvalidator application: = The WSDL = ?xml version=1.0 encoding=UTF-8? wsdl:definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; xmlns:mime=http://schemas.xmlsoap.org/wsdl/mime/; wsdl:message name=Msg wsdl:part name=msg type=xs:string/ /wsdl:message wsdl:portType name=HelloWorldPort wsdl:operation name=SayHello wsdl:input message=Msg/ wsdl:output message=Msg/ /wsdl:operation /wsdl:portType wsdl:binding name=HelloWorldSOAP type=HelloWorldPort soap:binding style=rpc transport=http://schemas.xmlsoap.org/soap/http/ wsdl:operation name=SayHello soap:operation soapAction=http://unwire.dk/SayHello/ wsdl:input soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:input wsdl:output soap:body use=literal namespace=http://ws.unwire.dk// /wsdl:output /wsdl:operation /wsdl:binding wsdl:service name=HelloWorld wsdl:port name=HelloWorldDev binding=HelloWorldSOAP soap:address location=http://localhost:8080/Services/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions = The Error = wsdlvalidator -verbose /Users/vest/workspace/Service/src/main/resources/HelloWorld.wsdl wsdlvalidator - 2.1-incubator-SNAPSHOT WSDLValidator Error : line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.w sdl: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. [+] Verbose turned on org.apache.cxf.tools.common.ToolException: line 8 column 56 of file:/Users/vest/workspace/Statistics2/src/main/resources/HelloWorld.w sdl: cvc-elt.1: Cannot find the declaration of element 'wsdl:definitions'. at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(Schem aValidator.java:202) at org.apache.cxf.tools.validator.internal.SchemaValidator.validate(Schem aValidator.java:118) at org.apache.cxf.tools.validator.internal.SchemaValidator.isValid(Schema Validator.java:102) at org.apache.cxf.tools.validator.internal.WSDL11Validator.isValid(WSDL11 Validator.java:113) at org.apache.cxf.tools.validator.WSDLValidator.execute(WSDLValidator.jav a:65) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.jav a:83) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.jav a:52) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.jav a:39) at org.apache.cxf.tools.validator.WSDLValidator.main(WSDLValidator.java:9 3) Any idears? I honestly can't see what would be wrong with my WSDL. -- J. Daniel Kulp Principal Engineer IONA P: 781-902-8727C: 508-380-7194 [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: Setting up eclipse tutorial
Joshua, What are you trying to achieve? The instructions at: http://incubator.apache.org/cxf/setting-up-eclipse.html are for CXF developers that want to get the CXF trunk up in eclipse for developing CXF itself. It has nothing to do with the Eclipse STP plugins and getting STP to work. For the eclipse STP plugin, there was a thread earlier about it: http://www.nabble.com/Eclipse-STP-installation-process-tf4125577.html#a11732259 In anycase, if you want to get CXF up and running in eclipse for developing CXF, the first page should do it. The two commands: 1) mvn -Pfastinstall- this should build all of CXF. This is needed to get the buildtools installed and the plugins, etc... The -Pfastinstall maven profile turns off the tests, checkstyle, pmd, etc... and just gets the jars installed as fast as possible. 2) mvn -Psetup.eclipse - this will setup the eclipse workspace and create all the projects (that you then need to import into that workspace) It goes beyond a normal mvn eclipse:eclipse in for three things: a) The top level pom will add the checkstyle rules and CXF codestyles, import orders, etc... into the workspace dir b) For each project, it adds the checkstyle and PMD files. (.pmd, .ruleset, .checkstyle) c) It involkes eclipse:eclipse after the process-test-sources phase so the test directories get properly added. A default eclipse:eclipse executes only after the process-sources phase so any of the generated test code doesn't get added to the project. Hope this helps! Dan On Tuesday 24 July 2007 04:36, Joshua Jackson wrote: Dear all, Does anyone has problem with tutorial setting up eclipse located at http://incubator.apache.org/cxf/setting-up-eclipse.html ? I don't quite get it. What does these maven command: mvn -Pfastinstall mvn -Psetup.eclipse has got to do with the eclipse plugin-in setup? Perhaps before executing those maven commands, it should write down how to set up the maven first so new user won't be confused. Second, those maven commands doesn't work for me. This is what I get from my console: $ mvn -Psetup.eclipse [INFO] Scanning for projects... [INFO] -- -- [ERROR] BUILD FAILURE [INFO] -- -- [INFO] You must specify at least one goal. Try 'install' [INFO] -- -- [INFO] For more information, run Maven with the -e switch [INFO] -- -- [INFO] Total time: 1 second [INFO] Finished at: Tue Jul 24 15:32:35 ICT 2007 [INFO] Final Memory: 1M/2M [INFO] -- -- Am I missing something here? Thanks in advance. :) -- J. Daniel Kulp Principal Engineer IONA P: 781-902-8727C: 508-380-7194 [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: HelloWorld service, getting NULL return value: possible BUG
Marty, We're still fixing bugs.. :-) Seriously, we're hoping to do the 2.0.1 release builds either this coming Friday or Monday. Dan On Monday 23 July 2007 16:16, Marty Saxton wrote: Dan: I just tried the snapshot (2.0.1-incubator-SNAPSHOT) and it worked without having to do ParameterStyle.BARE. Looks like it's fixed now. :) Anyone know when 2.0.1 will be promoted to release? Thanks. -Original Message- From: Daniel Kulp [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 18, 2007 9:05 PM To: cxf-user@incubator.apache.org Subject: Re: HelloWorld service, getting NULL return value: possible BUG Marty, Any chance you could try a SNAPSHOT version of CXF? I just uploaded a new snapshot to: http://people.apache.org/repo/m2-snapshot-repository/org/apache/cxf/ap ac he-cxf/2.0.1-incubator-SNAPSHOT/ This looks very similar to some of the issues I fixed yesterday related to: https://issues.apache.org/jira/browse/CXF-802 If not, don't worry, I'll try your testcase in the next day or two. Dan On Wednesday 18 July 2007 17:10, Marty Saxton wrote: I found a workaround to the return value null problem. Here's the additional info: I have an annotated interface for the service in the server, and am generating the WSDL using java2wsdl. Then I generate the client using this wsdl using wsdl2java. I was getting the null until I changed the SOAPBinding.parameterStyle to BARE. The default value of WRAPPED causes it to fail. So now my interface looks like this: @WebService public interface HelloWorld { @WebMethod @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) String sayHi(String text); } I wonder if it has anything to do with the default name of the WebResult is 'return'. In the implementation, I think this gets renamed to '_return'. Maybe this is why the return value doesn't get unmarshalled correctly, not sure -Original Message- From: Marty Saxton [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 18, 2007 12:45 PM To: cxf-user@incubator.apache.org Subject: RE: attempting HelloWorld service, getting NULL return value Yes, something is up with the client, and it's only in jax-ws frontend. The simple front end works. I am using CXF 2.0-incubator. Here's my main. The 1st hunk of code uses the classes generated from the java2wsdl tool. This is the one that is returning the null. The 2nd hunk of code uses the simple front end, and it works fine. public static void main(String[] args) { HelloWorldImplService hws = new HelloWorldImplService(); HelloWorld hw = hws.getHelloWorldImplPort(); String s = hw.sayHi(asdf); System.out.println(s); final String SERVICE_URL = http://localhost:8080/hello/HelloWorld;; ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory.setServiceClass(HelloWorld.class); factory.setAddress(SERVICE_URL); HelloWorld helloWorldClient = (HelloWorld) factory.create(); s = helloWorldClient.sayHi(asdf); System.out.println(s); } Here's the HelloWorld interface that was generated by java2wsdl (run from the maven plugin). The one thing that is suspect is the targetNamespace for @WebResult is empty string. I think it should be http://test.twowire/;. @WebService(targetNamespace = http://test.twowire/;, name = HelloWorld) public interface HelloWorld { @WebResult(targetNamespace = , name = return) @RequestWrapper(localName = sayHi, targetNamespace = http://test.twowire/;, className = twowire.test.SayHi) @ResponseWrapper(localName = sayHiResponse, targetNamespace = http://test.twowire/;, className = twowire.test.SayHiResponse) @WebMethod public java.lang.String sayHi( @WebParam(targetNamespace = , name = arg0) java.lang.String arg0 ); } Here is the WSDL (which was generated via wsdl2java): ?xml version=1.0 encoding=UTF-8 standalone=no?wsdl:definitions xmlns:ns1=http://test.twowire/; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:xsd=http://www.w3.org/2001/XMLSchema; name=HelloWorldImplService targetNamespace=http://test.twowire/; wsdl:types xsd:schema xmlns=http://test.twowire/; attributeFormDefault=unqualified elementFormDefault=unqualified targetNamespace=http://test.twowire/; xsd:element name=sayHi type=sayHi/ xsd:complexType name=sayHi xsd:sequence xsd:element minOccurs=0 name=arg0 type=xsd:string/ /xsd:sequence /xsd:complexType xsd:element name=sayHiResponse type=sayHiResponse/ xsd:complexType name=sayHiResponse xsd:sequence xsd:element minOccurs=0 name=return type=xsd:string/ /xsd:sequence /xsd:complexType /xsd:schema /wsdl:types wsdl:message name=sayHiResponse wsdl:part element=ns1:sayHiResponse name=parameters /wsdl:part /wsdl:message
Re: Tools Error : Can not found wsdl plugin jms-javax.wsdl.Port for wsdl extension point interface javax.wsdl.Port
Hi, Can you attach the whole stacktrace? My first impression is that you don't have the cxf-jms jar in your classpath, can you confirm that Also, let me know which version of cxf you are using Regards, James Hi there, Has anyone seen the following error with wsdl2service? Am trying to generate a JMS service but it's not working... I get the same kind of error (Tools Error: Can not found wsdl plugin...) when I try and run the wsdl2xml tool... C:\celtix_exercises\invoicing-student\wsdl\playwsdl2service -transport jms -e InvoicingService -p blah -n InvoicingSOAPBinding InvoicingService.wsdl Tools Error : Can not found wsdl plugin jms-javax.wsdl.Port for wsdl extension point interface javax.wsdl.Port Am using JDK 1.5.09... Any help would be greatly appreciated! Thanks, Ade Adrian Trenaman Principal Consultant, IONA Technologies. E: [EMAIL PROTECTED] P: +353-1-6372659 M: +353-86-6051026 IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Unexpected exception parsing XML document from class path resource [META-INF/cxf
Hi David It looks like some xml parser work issue, can you list your environments, such as JDK version, the hello_world's class path etc. I guess there may have some inflictions of JAXB between the CXF used and the NSE used. Hope this can help you out :) Willem. David Du wrote: Hi, all Since we are using Netscape Enterprise Server (NES) 6.2, I am trying to deploy the sample webservice hello_word to NES, but I got the following error, anybody has a clue? Thanks David [23/Jul/2007:03:00:47] info ( 4615): vs(https-dduRHL.pkipro)servlet 'cxf' class = 'org.apache.cxf.transport.servlet.CXFServlet' loaded in context = '/hello_world' [23/Jul/2007:03:00:47] info ( 4615): cxf: init [23/Jul/2007:03:00:48] warning ( 4615): vs(https-dduRHL.pkipro)Exception thrown in servlet.init; context = /hello_world, servlet = 'cxf', servlet-class = 'org.apache.cxf.transport.servlet.CXFServlet', stack tace: java.lang.RuntimeException: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [META-INF/cxf/cxf.xml]; nested exception is java.lang.ExceptionInInitializerError at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:84) at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:66) at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:143) at org.apache.cxf.transport.servlet.CXFServlet.init(CXFServlet.java:96) at com.netscape.server.http.servlet.WServletEntity.loadAndInitServlet(WServletEntity.java:98) at com.netscape.server.http.servlet.WebApplication.init(WebApplication.java:356) at com.netscape.server.http.servlet.VirtualServer.init(VirtualServer.java:182) at com.netscape.server.http.servlet.NSServletRunner.VSInit(NSServletRunner.java:683) Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [META-INF/cxf/cxf.xml]; nested exception is java.lang.ExceptionInInitializerError at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:375) 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.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:108) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:79) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:100) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313) at org.apache.cxf.bus.spring.BusApplicationContext.init(BusApplicationContext.java:71) at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:81) ... 7 more Caused by: java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at com.sun.org.apache.xerces.internal.impl.dv.ObjectFactory.newInstance(ObjectFactory.java:351) at com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory.getInstance(SchemaDVFactory.java:68) at com.sun.org.apache.xerces.internal.impl.dv.SchemaDVFactory.getInstance(SchemaDVFactory.java:52) at com.sun.org.apache.xerces.internal.impl.xs.SchemaGrammar$BuiltinSchemaGrammar.init(SchemaGrammar.java:158) at com.sun.org.apache.xerces.internal.impl.xs.SchemaGrammar.clinit(SchemaGrammar.java:904) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.init(XMLSchemaValidator.java:1067) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.configurePipeline(XML11Configuration.java:1148) at com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.configurePipeline(XIncludeAwareParserConfiguration.java:151) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)