Mixing java_first_spring_support groovy_spring_support
My goal is to deploy configure a groovy service in tomcat using spring. I started using the java_first_spring_support samples. I deployed it into tomcat and started to modify it a bit. I added the files HelloWorld.groovy HelloWorldImpl.groovy in webapps/spring_http/WEB-INF/classes. I then modified the beans.xml so that it look like this: beans xmlns=http://www.springframework.org/schema/beans; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:lang=http://www.springframework.org/schema/lang; xmlns:jaxws=http://cxf.apache.org/jaxws; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-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 / lang:groovy id=helloworld script-source=classpath:HelloWorld.groovy scope=prototype/ lang:groovy id=helloworldImpl script-source=classpath:HelloWorldImpl.groovy scope=prototype/ bean id=hello class=demo.spring.HelloWorldImpl / jaxws:endpoint id=helloEndPoint implementor=#helloworldImpl address=/HelloWorld / !-- jaxws:endpoint id=helloEndPoint implementor=#hello address=/HelloWorld / -- /beans Starting tomcat and looking the logs is fine except that my WSDL is almost empty (see below). Any idea what I am doing wrong ? wsdl:definitions name=HelloWorldImplService targetNamespace=http://unknown.namespace/; wsdl:portType name=HelloWorldImpl /wsdl:portType wsdl:binding name=HelloWorldImplServiceSoapBinding type=tns:HelloWorldImpl soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ /wsdl:binding wsdl:service name=HelloWorldImplService wsdl:port binding=tns:HelloWorldImplServiceSoapBinding name=HelloWorldImplPort soap:address location=http://localhost:8080/spring_http/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions -- Best Regards Guillaume http://cheztog.blogspot.com
RE: Rest Header Info
Are you using CXF HTTP Binding to build your REST service, or CXF JAX-RS (JSR-311) instead? In CXF JAX-RS (JSR-311), the standard way to access HTTP headers is using @HeaderParam, like below: @HttpMethod(GET) @UriTemplate(/books/{bookId}/) public Book getBook(@UriParam(bookId) String id, @HeaderParam (httpheaderName) String headerValue) { } Of course, this @HeaderParam feature is not implemented yet in CXF :-). But can be supported very quickly if people started asking for it. See JIRA https://issues.apache.org/jira/browse/CXF-1011 Cheers, Jervis -Original Message- From: Todd Orr [mailto:[EMAIL PROTECTED] Sent: 2008年1月8日 12:19 To: cxf-user@incubator.apache.org Subject: Rest Header Info I need to get some header info during REST requests for security checks. I tried to use the @Resource WebServiceContext method described in the WS documents but quickly learned that this doesn't work. Is there any method for RESTful services to do this? IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
RE: using multiple values for @ProduceMime
Hi Akos, you definitely should be able to set multiple values for @ProduceMime. According to spec, if @ProduceMime contains multiple MIME types (or it’s a wild card such as */*), the actual output content type being used is determined by: 1. the output Java type: i.e., if your method is declared as: @HttpMethod(GET) @UriTemplate(/books/{bookId}/) @ProduceMime(application/xml, application/json) public Book getBook (@UriParam(bookId) String id) throws BookNotFoundFault { ... } The EntityProvider under consideration (JAXBElementProvider or JSONEntityProvider) must support the Book type. In CXF, if your Book class is declared with @XmlRootElement annotation, both JAXBElementProvider or JSONEntityProvider's supports() method will return true 2. The Accepted header. 3. If there are still multiple EntityProvider selected after step 1 and 2 (EntityProvider is used to produce output), the first one in the candidate list is selected. The candidate list is sorted using x/y x/* */*. In your case, if your client did not set accepted header, application/json should be selected, I guess there is a bug that did not set output MIME type correctly. I will fix this. Jira created: https://issues.apache.org/jira/browse/CXF-1361 Cheers, Jervis -Original Message- From: ákos Maróy [mailto:[EMAIL PROTECTED] Sent: 2008年1月7日 20:37 To: cxf-user@incubator.apache.org Subject: using multiple values for @ProduceMime Hi, I'm experimenting with the JAX-RS implementation in CXF. I'm trying to create methods that are able to return content in different formats. The JAX-RS spec says that any method can declare multiple MIME types that it produces, like: @ProduceMime({application/xml, application/json}) but when trying this out, I see that the CXF implementation effectively only allows for a single MIME type declaration. If I declare multiple entries, like above, strangely the returned MIME type will be application/xml, but the returned format will be application/json I wonder if it's possible to make this feature work in CXF as in the spec? Akos IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Mixing java_first_spring_support groovy_spring_support
Hi Guillaume, I tested on my machine, it works. Could you check the required 3rd-party jars was put into WEB-INF/lib, you can find the jars in the README.txt in groovy sample directory. * spring-aop-2.0.x.jar * spring-support-2.0.x.jar * groovy-1.0.jar * antlr-2.7.6.jar * asm-2.2.3.jar regards Jeff tog wrote: My goal is to deploy configure a groovy service in tomcat using spring. I started using the java_first_spring_support samples. I deployed it into tomcat and started to modify it a bit. I added the files HelloWorld.groovy HelloWorldImpl.groovy in webapps/spring_http/WEB-INF/classes. I then modified the beans.xml so that it look like this: beans xmlns=http://www.springframework.org/schema/beans; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:lang=http://www.springframework.org/schema/lang; xmlns:jaxws=http://cxf.apache.org/jaxws; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-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 / lang:groovy id=helloworld script-source=classpath:HelloWorld.groovy scope=prototype/ lang:groovy id=helloworldImpl script-source=classpath:HelloWorldImpl.groovy scope=prototype/ bean id=hello class=demo.spring.HelloWorldImpl / jaxws:endpoint id=helloEndPoint implementor=#helloworldImpl address=/HelloWorld / !-- jaxws:endpoint id=helloEndPoint implementor=#hello address=/HelloWorld / -- /beans Starting tomcat and looking the logs is fine except that my WSDL is almost empty (see below). Any idea what I am doing wrong ? wsdl:definitions name=HelloWorldImplService targetNamespace=http://unknown.namespace/; wsdl:portType name=HelloWorldImpl /wsdl:portType wsdl:binding name=HelloWorldImplServiceSoapBinding type=tns:HelloWorldImpl soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ /wsdl:binding wsdl:service name=HelloWorldImplService wsdl:port binding=tns:HelloWorldImplServiceSoapBinding name=HelloWorldImplPort soap:address location=http://localhost:8080/spring_http/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions
RE: WS-Security error when using BinarySecurityToken
Hi Mayank, Thank you for your answer. I'm surprised as CXF is using WSS4J I thought that what is explained here http://wiki.apache.org/ws/FrontPage/WsFx/wss4jFAQ#many would also work with CXF. Is it just that this fuctionality is not yet implemented in CXF or is it something that I don't understand? I'll probably not modify the CXF code to do that myself as I definitely don't know how to do that ;-) Best regards Philippe Wanner Philippe, Bedag wrote: Hi everybody, I'm trying to encrypt the webservice call response using the client BinarySecurityToken embedded in the request soap header. To do that, 1) I changed the signatureKeyIdentifier property to DirectReference in the client.xml WSS4JOutInterceptor definition 2) I changed the encryptionUser property to useReqSigCert in the service.xml WSS4JOutInterceptor definition The BinarySecurityToken is embedded in the request soap header (see below) but when the service creates the response, and tries to encrypt the generated symmetric key used to encrypt the message it seems that it can't find the certificate that contains the client public key. In the org.apache.ws.security.message.WSSecEncrypt class, prepare(Document doc, Crypto crypto) method (see below), the line that gets the certificate with the user useReqSigCert returns null. Hi Philippe, IMO in CXF, the certificate being sent from the client as BinarySecurityToken in the incoming request is not used for the return encryption operation. Currently, The code written takes the required certificate from the Server-TrustStore. For your purpose, you can modify the code so that certificate can be retained for the whole request and response cycle. With Regards, Mayank /* * Get the certificate that contains the public key for the public key * algorithm that will encrypt the generated symmetric (session) key. */ if(this.encryptSymmKey) { X509Certificate remoteCert = null; if (useThisCert != null) { remoteCert = useThisCert; } else { X509Certificate[] certs = crypto.getCertificates(user); if (certs == null || certs.length = 0) { throw new WSSecurityException(WSSecurityException.FAILURE, invalidX509Data, new Object[] { for Encryption }); } remoteCert = certs[0]; } prepareInternal(this.ephemeralKey, remoteCert, crypto); } Request SOAP Header BST wsse:BinarySecurityToken xmlns:wsu=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd; EncodingType=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary; ValueType=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3; wsu:Id=CertId-7518237 xmlns:wsse=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd; MIIDJjCCAo+gAwIBAgIQbAuWL3AdDuWrlipWXiUHIjANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMCWkExIjAgBgNVBAgTGUZPUiBURVNUSU5HIFBVUlBPU0VTIE9OTFkxHTAbBgNVBAoTFFRoYXd0ZSBDZXJ0aWZpY2F0aW9uMRcwFQYDVQQLEw5URVNUIFRFU1QgVEVTVDEcMBoGA1UEAxMTVGhhd3RlIFRlc3QgQ0EgUm9vdDAeFw0wODAxMDQxMTExMzZaFw0wODAxMjUxMTExMzZaMHIxCzAJBgNVBAYTAkNIMQswCQYDVQQIEwJWRDERMA8GA1UEBxMITGF1c2FubmUxDjAMBgNVBAoTBUJlZGFnMREwDwYDVQQLEwhFU29jaWV0ZTEgMB4GA1UEAxMXd3d3LmRldmVwYXkuZXNvY2lldGUuY2gwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJIweOZ2zZDbbNacrWAK6sLXRY90da2f27ZYHwN/b7Te0m5qVJc3XTLDGmjKoF0YN/IZcXJIF+2hfW54HL/ZU1E1bAP06pCqmAkrRnSKqju8cieUf0Np4/NL96geRxCqCCs8SeJcguYIAodCkUoqGzZtV9yvrSNhk0/PrbCEDkjDAgMBAAGjgaYwgaMwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMA0GCSqGSIb3DQEBBQUAA4GBAKZqkoO+USbtbX+cRF0KvXfFjTbrrceeTYoOVhvfn+dkYIc4VeBSbEoofZVtM13EsbVdWDslzw2tCrCYTdRWoOIWTGo5ng1QTrjSy1KJh6bqWiygLr/EYMBsJNG9hOVy4HCymWN2mlFTw6OfmrMMlzMWiYp/Kwu4OgdL4k+UwD7n /wsse:BinarySecurityToken For the test I'm using the CXF Geeter unit test (org.apache.cxf.systest.ws.security). I'm using the latest cxf 2.1-snapshot version. I really need this feature as it's nearly impossible to manage to add every client's certificate to the server keystore. Is it a bug in the cxf implementation or is it me doing something wrong? Any idea would be welcome. Thank you. client.xml config jaxws:client name={http://apache.org/hello_world_soap_http}TimestampSignEncrypt; createdFromAPI=true jaxws:features bean class=org.apache.cxf.feature.LoggingFeature/ /jaxws:features jaxws:outInterceptors bean class=org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor/ ref bean=TimestampSignEncrypt_Request/ /jaxws:outInterceptors
Re: Mixing java_first_spring_support groovy_spring_support
Hi Jeff, I just checked and I have all those files (yes I read the README :-) ) So you mean you get the same WSDL by choosing any of the jaxws:endpoint ? Could you send me your webapp (without the lib dir) ? I am using the 2.0.7 spring version. Cheers Guillaume On Jan 8, 2008 5:12 PM, Jeff Zhang [EMAIL PROTECTED] wrote: Hi Guillaume, I tested on my machine, it works. Could you check the required 3rd-party jars was put into WEB-INF/lib, you can find the jars in the README.txt in groovy sample directory. * spring-aop-2.0.x.jar * spring-support-2.0.x.jar * groovy-1.0.jar * antlr-2.7.6.jar * asm-2.2.3.jar regards Jeff tog wrote: My goal is to deploy configure a groovy service in tomcat using spring. I started using the java_first_spring_support samples. I deployed it into tomcat and started to modify it a bit. I added the files HelloWorld.groovy HelloWorldImpl.groovy in webapps/spring_http/WEB-INF/classes. I then modified the beans.xml so that it look like this: beans xmlns=http://www.springframework.org/schema/beans; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:lang=http://www.springframework.org/schema/lang; xmlns:jaxws=http://cxf.apache.org/jaxws; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-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 / lang:groovy id=helloworld script-source=classpath:HelloWorld.groovy scope=prototype/ lang:groovy id=helloworldImpl script-source=classpath:HelloWorldImpl.groovy scope=prototype/ bean id=hello class=demo.spring.HelloWorldImpl / jaxws:endpoint id=helloEndPoint implementor=#helloworldImpl address=/HelloWorld / !-- jaxws:endpoint id=helloEndPoint implementor=#hello address=/HelloWorld / -- /beans Starting tomcat and looking the logs is fine except that my WSDL is almost empty (see below). Any idea what I am doing wrong ? wsdl:definitions name=HelloWorldImplService targetNamespace=http://unknown.namespace/; wsdl:portType name=HelloWorldImpl /wsdl:portType wsdl:binding name=HelloWorldImplServiceSoapBinding type=tns:HelloWorldImpl soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ /wsdl:binding wsdl:service name=HelloWorldImplService wsdl:port binding=tns:HelloWorldImplServiceSoapBinding name=HelloWorldImplPort soap:address location=http://localhost:8080/spring_http/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions -- Best Regards Guillaume http://cheztog.blogspot.com
Re: about sample ws_addressing
Glen is correct, the handler_chain.xml is obsolete and should be deleted. The handler_chain.xml is a throw-back to an earlier version of the ws_addressing demo which used an JAX-WS handler (demo.ws_addressing.common.HeaderSnooper) to display the WS-Addressing headers to stdout. However, I later simplified the demo to just use WS-A logging for the same illustrative purpose. Hence the HeaderSnooper handler was deleted as it was no longer required by the demo, and the handler_chain.xml should have been deleted at the same time for completeness. So the fact that it still exists is a simple over-sight. Cheers, Eoghan Glen Mazza wrote: Resending... Am Montag, den 07.01.2008, 11:37 -0800 schrieb YI (William) ZHU: Hi there, I'm studying the sample ws_addressing of CXF2.0.2. I have two questions about the configure file handler_chain.xml: 1) where is the Java file for demo.ws_addressing.common.HeaderSnooper class? I have searched the whole samples, but can not find it; Technically it is here: http://svn.apache.org/viewvc?view=revrevision=480071 But it apparently was deleted in 2006 because it is no longer needed for WS-Addressing. 2) when this file handler_chain.xml is used? I don't think it is used at all anymore. If no one else thinks it is in use, I will delete it soon. Sorry for any confusion. Glen Please help answer this question! Thanks, YI ZHU IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Aegis question
Thanks Eric, but what I want to change is in the schema not in the part i.e. xsd:complexType name=addResponse xsd:sequence xsd:element name=return type=xsd:double/ /xsd:sequence /xsd:complexType Cheers Guillaume On Jan 8, 2008 6:00 PM, Eric Rodriguez [EMAIL PROTECTED] wrote: Try @WebParam http://cwiki.apache.org/CXF20DOC/how-do-i-develop-a-service.html Regards, tog wrote: When publishing a service using aegis, the name of the output message is return when my code is doing something like: double sum(double arg0, double arg1) { return (arg0 + arg1) } I mean the wsdl is this: xsd:complexType name=addResponse xsd:sequence xsd:element name=return type=xsd:double/ /xsd:sequence /xsd:complexType Is there a way to change the name - I would like it not to be a java keyword :-) ? Cheers -- Best Regards Guillaume http://cheztog.blogspot.com
Re: Aegis question
Try @WebParam http://cwiki.apache.org/CXF20DOC/how-do-i-develop-a-service.html Regards, tog wrote: When publishing a service using aegis, the name of the output message is return when my code is doing something like: double sum(double arg0, double arg1) { return (arg0 + arg1) } I mean the wsdl is this: xsd:complexType name=addResponse xsd:sequence xsd:element name=return type=xsd:double/ /xsd:sequence /xsd:complexType Is there a way to change the name - I would like it not to be a java keyword :-) ? Cheers
Re: WS-Security error when using BinarySecurityToken
Wanner Philippe, Bedag wrote: Hi Philippe, Hi Mayank, Thank you for your answer. I'm surprised as CXF is using WSS4J I thought that what is explained here http://wiki.apache.org/ws/FrontPage/WsFx/wss4jFAQ#many You are using CXF or Axis as SOAP engine? I guess the link is for Axis Soap engine and Axis Handlers. Please verify, AFAIK, there handlers are used in Axis only. would also work with CXF. Is it just that this fuctionality is not yet implemented in CXF or is it something that I don't understand? AFAIK, this functionality is not yet implemented in CXF, but it's not a big change you require: 1. pass the verify trust successfully (where it checks in the server's truststore for the alias of the certificate), and 2. keep the request certificate in message context so that you can use it in response operations. IMO, Ideally public keys (or call as certificates) are suppose to be exchanged before secure communication starts. Apache has a project named as Apache Rahas for their WS-Trust implmentation. With Regards, Mayank I'll probably not modify the CXF code to do that myself as I definitely don't know how to do that ;-) Best regards Philippe Wanner Philippe, Bedag wrote: Hi everybody, I'm trying to encrypt the webservice call response using the client BinarySecurityToken embedded in the request soap header. To do that, 1) I changed the signatureKeyIdentifier property to DirectReference in the client.xml WSS4JOutInterceptor definition 2) I changed the encryptionUser property to useReqSigCert in the service.xml WSS4JOutInterceptor definition The BinarySecurityToken is embedded in the request soap header (see below) but when the service creates the response, and tries to encrypt the generated symmetric key used to encrypt the message it seems that it can't find the certificate that contains the client public key. In the org.apache.ws.security.message.WSSecEncrypt class, prepare(Document doc, Crypto crypto) method (see below), the line that gets the certificate with the user useReqSigCert returns null. Hi Philippe, IMO in CXF, the certificate being sent from the client as BinarySecurityToken in the incoming request is not used for the return encryption operation. Currently, The code written takes the required certificate from the Server-TrustStore. For your purpose, you can modify the code so that certificate can be retained for the whole request and response cycle. With Regards, Mayank /* * Get the certificate that contains the public key for the public key * algorithm that will encrypt the generated symmetric (session) key. */ if(this.encryptSymmKey) { X509Certificate remoteCert = null; if (useThisCert != null) { remoteCert = useThisCert; } else { X509Certificate[] certs = crypto.getCertificates(user); if (certs == null || certs.length = 0) { throw new WSSecurityException(WSSecurityException.FAILURE, invalidX509Data, new Object[] { for Encryption }); } remoteCert = certs[0]; } prepareInternal(this.ephemeralKey, remoteCert, crypto); } Request SOAP Header BST wsse:BinarySecurityToken xmlns:wsu=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd; EncodingType=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary; ValueType=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3; wsu:Id=CertId-7518237 xmlns:wsse=http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd; MIIDJjCCAo+gAwIBAgIQbAuWL3AdDuWrlipWXiUHIjANBgkqhkiG9w0BAQUFADCBhzELMAkGA1UEBhMCWkExIjAgBgNVBAgTGUZPUiBURVNUSU5HIFBVUlBPU0VTIE9OTFkxHTAbBgNVBAoTFFRoYXd0ZSBDZXJ0aWZpY2F0aW9uMRcwFQYDVQQLEw5URVNUIFRFU1QgVEVTVDEcMBoGA1UEAxMTVGhhd3RlIFRlc3QgQ0EgUm9vdDAeFw0wODAxMDQxMTExMzZaFw0wODAxMjUxMTExMzZaMHIxCzAJBgNVBAYTAkNIMQswCQYDVQQIEwJWRDERMA8GA1UEBxMITGF1c2FubmUxDjAMBgNVBAoTBUJlZGFnMREwDwYDVQQLEwhFU29jaWV0ZTEgMB4GA1UEAxMXd3d3LmRldmVwYXkuZXNvY2lldGUuY2gwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJIweOZ2zZDbbNacrWAK6sLXRY90da2f27ZYHwN/b7Te0m5qVJc3XTLDGmjKoF0YN/IZcXJIF+2hfW54HL/ZU1E1bAP06pCqmAkrRnSKqju8cieUf0Np4/NL96geRxCqCCs8SeJcguYIAodCkUoqGzZtV9yvrSNhk0/PrbCEDkjDAgMBAAGjgaYwgaMwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1TZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMA0GCSqGSIb3DQEBBQUAA4GBAKZqkoO+USbtbX+cRF0KvXfFjTbrrceeTYoOVhvfn+dkYIc4VeBSbEoofZVtM13EsbVdWDslzw2tCrCYTdRWoOIWTGo5ng1QTrjSy1KJh6bqWiygLr/EYMBsJNG9hOVy4HCymWN2mlFTw6OfmrMMlzMWiYp/Kwu4OgdL4k+UwD7n /wsse:BinarySecurityToken For the test I'm using the CXF Geeter unit test (org.apache.cxf.systest.ws.security). I'm using the
Re: Mixing java_first_spring_support groovy_spring_support
Hi Guillaume, Since apache maillist can't attach file, I will send to you by your email address. I visit http://localhost:8080/spring_http/HelloWorld?wsdl by the browser, it return the right wsdl file. I use spring 2.0.6. Hope useful. Jeff tog wrote: Hi Jeff, I just checked and I have all those files (yes I read the README :-) ) So you mean you get the same WSDL by choosing any of the jaxws:endpoint ? Could you send me your webapp (without the lib dir) ? I am using the 2.0.7 spring version. Cheers Guillaume On Jan 8, 2008 5:12 PM, Jeff Zhang [EMAIL PROTECTED] wrote: Hi Guillaume, I tested on my machine, it works. Could you check the required 3rd-party jars was put into WEB-INF/lib, you can find the jars in the README.txt in groovy sample directory. * spring-aop-2.0.x.jar * spring-support-2.0.x.jar * groovy-1.0.jar * antlr-2.7.6.jar * asm-2.2.3.jar regards Jeff tog wrote: My goal is to deploy configure a groovy service in tomcat using spring. I started using the java_first_spring_support samples. I deployed it into tomcat and started to modify it a bit. I added the files HelloWorld.groovy HelloWorldImpl.groovy in webapps/spring_http/WEB-INF/classes. I then modified the beans.xml so that it look like this: beans xmlns=http://www.springframework.org/schema/beans; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xmlns:lang=http://www.springframework.org/schema/lang; xmlns:jaxws=http://cxf.apache.org/jaxws; xsi:schemaLocation= http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-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 / lang:groovy id=helloworld script-source=classpath:HelloWorld.groovy scope=prototype/ lang:groovy id=helloworldImpl script-source=classpath:HelloWorldImpl.groovy scope=prototype/ bean id=hello class=demo.spring.HelloWorldImpl / jaxws:endpoint id=helloEndPoint implementor=#helloworldImpl address=/HelloWorld / !-- jaxws:endpoint id=helloEndPoint implementor=#hello address=/HelloWorld / -- /beans Starting tomcat and looking the logs is fine except that my WSDL is almost empty (see below). Any idea what I am doing wrong ? wsdl:definitions name=HelloWorldImplService targetNamespace=http://unknown.namespace/; wsdl:portType name=HelloWorldImpl /wsdl:portType wsdl:binding name=HelloWorldImplServiceSoapBinding type=tns:HelloWorldImpl soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ /wsdl:binding wsdl:service name=HelloWorldImplService wsdl:port binding=tns:HelloWorldImplServiceSoapBinding name=HelloWorldImplPort soap:address location=http://localhost:8080/spring_http/HelloWorld/ /wsdl:port /wsdl:service /wsdl:definitions
Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy'
Hi Jim, Changed the logging level to FINE as you indicated and run the wsdl to java on my wsdl, but there is no such a message in there as Classes known to this context:. I've search for classes and context as well and there is nothing on those lines. There are some exceptions that I'm not sure there are relevant. I add here the last one before the error. Thanks for your help, Monica [exec] 08-Jan-2008 10:19:57 com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory get [exec] FINE: Using optimized Accessor for com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding com.sun.tools.xjc.re ader.xmlschema.bindinfo.BIGlobalBinding.getUnderscoreBinding() and void com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding.setUnderscore Binding(com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding) [exec] 08-Jan-2008 10:19:57 com.sun.xml.bind.v2.runtime.reflect.opt.Injector inject [exec] FINE: Unable to inject com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType [exec] java.lang.reflect.InvocationTargetException [exec] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [exec] at java.lang.reflect.Method.invoke(Method.java:597) [exec] at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:125) [...] [exec] at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171) [exec] Caused by: java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType [exec] at java.lang.ClassLoader.defineClass1(Native Method) [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:620) [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:465) [exec] ... 84 more From: Jim Ma [EMAIL PROTECTED] To: cxf-user@incubator.apache.org Date: 08/01/2008 02:56 Subject:Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' Hi Monica, You can change the log level to FINE (modify the log configuration file under ${CXF_HOME}/etc/logging.properties) to see if the OrderBy classes added to JAXB Context when you run java2wsdl tool . Search Classes known to this context: in the log file to see if this class is known to JAXB. Regards Jim Monica Ferrero wrote: Hi Jim, Thank you for your reply. Item and OrderBy are generated by JAXB from a schema.xsd file. I have followed your advice to see if it behaves any different but I still get the same error. The Item and therefore OrderBy classes belong to a different JAXB context: com.aaa.bbb.zzz.jaxb, but not sure if/how to indicate this? Thanks for your help, Monica Inactive hide details for Jim Ma ---07/01/2008 02:22:26---Hi ,Jim Ma ---07/01/2008 02:22:26---Hi , From: Jim Ma [EMAIL PROTECTED] To: cxf-user@incubator.apache.org Date: 07/01/2008 02:22 Subject: Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' Hi , From the error message , I think this is caused by the inner class OrderBy is not loaded into JAXB context . Can you modify this class as a outer class and try it again ? I will look it further to see if the JAXB can not load the inner static class . Thanks Jim Monica Ferrero wrote: Hi! I'm getting this error: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' when trying to generate java stubs from the wsdl. This is my original service: @WebService(endpointInterface = com.aaa.bbb.ccc.MyService) public interface MyService { [...] @WebResult(name=MyList) @WebMethod MyList getItems( @WebParam(name=listId) int listId); [...] } the MyList class: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = , propOrder = {items}) @XmlRootElement(name = myList) public class MyList { @XmlElement(required = true) private ListItem items; public ListItem getItems() { if (items == null) { items = new ArrayListItem(); } return items; }
Re: about sample ws_addressing
I deleted it. Glen Am Dienstag, den 08.01.2008, 10:15 + schrieb Eoghan Glynn: Glen is correct, the handler_chain.xml is obsolete and should be deleted. The handler_chain.xml is a throw-back to an earlier version of the ws_addressing demo which used an JAX-WS handler (demo.ws_addressing.common.HeaderSnooper) to display the WS-Addressing headers to stdout. However, I later simplified the demo to just use WS-A logging for the same illustrative purpose. Hence the HeaderSnooper handler was deleted as it was no longer required by the demo, and the handler_chain.xml should have been deleted at the same time for completeness. So the fact that it still exists is a simple over-sight. Cheers, Eoghan Glen Mazza wrote: Resending... Am Montag, den 07.01.2008, 11:37 -0800 schrieb YI (William) ZHU: Hi there, I'm studying the sample ws_addressing of CXF2.0.2. I have two questions about the configure file handler_chain.xml: 1) where is the Java file for demo.ws_addressing.common.HeaderSnooper class? I have searched the whole samples, but can not find it; Technically it is here: http://svn.apache.org/viewvc?view=revrevision=480071 But it apparently was deleted in 2006 because it is no longer needed for WS-Addressing. 2) when this file handler_chain.xml is used? I don't think it is used at all anymore. If no one else thinks it is in use, I will delete it soon. Sorry for any confusion. Glen Please help answer this question! Thanks, YI ZHU IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: Aegis question
Yes, I tried this. Is this working with aegis ? I added geronimo-ws-metadata in my classpath with no success ! I tried also the following file with no success. ?xml version=1.0 encoding=UTF-8? mappings xmlns:sample=http://DefaultNamespace; mapping name=sample:MathService method name=add return-type name=sum/ /method /mapping /mappings On Jan 8, 2008 6:52 PM, Eric Rodriguez [EMAIL PROTECTED] wrote: @WebResult(name=sum) double sum(double arg0, double arg1) { return (arg0 + arg1) } tog wrote: Thanks Eric, but what I want to change is in the schema not in the part i.e. xsd:complexType name=addResponse xsd:sequence xsd:element name=return type=xsd:double/ /xsd:sequence /xsd:complexType Cheers Guillaume On Jan 8, 2008 6:00 PM, Eric Rodriguez [EMAIL PROTECTED] wrote: Try @WebParam http://cwiki.apache.org/CXF20DOC/how-do-i-develop-a-service.html Regards, tog wrote: When publishing a service using aegis, the name of the output message is return when my code is doing something like: double sum(double arg0, double arg1) { return (arg0 + arg1) } I mean the wsdl is this: xsd:complexType name=addResponse xsd:sequence xsd:element name=return type=xsd:double/ /xsd:sequence /xsd:complexType Is there a way to change the name - I would like it not to be a java keyword :-) ? Cheers -- Best Regards Guillaume http://cheztog.blogspot.com
new snapshot available
I just completed a new 2.1 snapshot.
How to set Soap version on client side
I use STP plugin in Eclipse. I set STP to use SOAP1.2. Sever side shows that it's using Soap1.2 (Soap12FaultOutInterceptor).But client side still use Soap1.1 (Soap11FaultInInterceptor). How to set Soap version on client side??? *sever side: Dec 26, 2007 1:48:25 PM org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor handleMessage INFO: class org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptorapplication/soap+xml *client side: INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.binding.soap.SoapFault: Could not parse message. at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:65) Here is my client code: public final class Client { private Client() { } public static void main(String args[]){ // START SNIPPET: client ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {demo/spring/client/client-beans.xml}); HelloWorld client = (HelloWorld)context.getBean(client); String response; try { response = client.sayHi(Fault); System.out.println(Response: + response); } catch (BusinessLogicException_Exception e) { // TODO Auto-generated catch block System.out.println(client receive exception); e.printStackTrace(); } // END SNIPPET: client } } //client-beans.xml 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/schema/jaxws.xsd; bean id=client class=demo.spring.HelloWorld factory-bean=clientFactory factory-method=create/ bean id=clientFactory class=org.apache.cxf.jaxws.JaxWsProxyFactoryBean property name=serviceClass value=demo.spring.HelloWorld/ property name=address value=http://localhost:9090/spring_http/ws/ServerEndPoint/ /bean /beans -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14692146.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: How to set Soap version on client side
Thanks! I will definitly give it a try. Now I need to solve some problem to even generate soap1.2 wsdl file first :( Well, I use following configuration (example) 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:soap=http://cxf.apache.org/bindings/soap; 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/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd; import resource=classpath:META-INF/cxf/cxf.xml / import resource=classpath:META-INF/cxf/cxf-extension-http.xml / import resource=classpath:META-INF/cxf/cxf-extension-soap.xml / import resource=classpath:META-INF/cxf/cxf-servlet.xml / jaxws:client id=spring_id serviceClass=some.service.class address=some_service_address jaxws:binding soap:soapBinding version=1.2/ /jaxws:binding /jaxws:client /beans DM -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14694295.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: How to set Soap version on client side
Well, I use following configuration (example) 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:soap=http://cxf.apache.org/bindings/soap; 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/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd; import resource=classpath:META-INF/cxf/cxf.xml / import resource=classpath:META-INF/cxf/cxf-extension-http.xml / import resource=classpath:META-INF/cxf/cxf-extension-soap.xml / import resource=classpath:META-INF/cxf/cxf-servlet.xml / jaxws:client id=spring_id serviceClass=some.service.class address=some_service_address jaxws:binding soap:soapBinding version=1.2/ /jaxws:binding /jaxws:client /beans DM 2008/1/8, yulinxp [EMAIL PROTECTED]: I use STP plugin in Eclipse. I set STP to use SOAP1.2. Sever side shows that it's using Soap1.2 (Soap12FaultOutInterceptor).But client side still use Soap1.1 (Soap11FaultInInterceptor). How to set Soap version on client side??? *sever side: Dec 26, 2007 1:48:25 PM org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor handleMessage INFO: class org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptorapplication /soap+xml *client side: INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.binding.soap.SoapFault: Could not parse message. at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage (Soap11FaultInInterceptor.java:65) Here is my client code: public final class Client { private Client() { } public static void main(String args[]){ // START SNIPPET: client ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {demo/spring/client/client-beans.xml}); HelloWorld client = (HelloWorld)context.getBean(client); String response; try { response = client.sayHi(Fault); System.out.println(Response: + response); } catch (BusinessLogicException_Exception e) { // TODO Auto-generated catch block System.out.println(client receive exception); e.printStackTrace(); } // END SNIPPET: client } } //client-beans.xml 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/schema/jaxws.xsd; bean id=client class=demo.spring.HelloWorld factory-bean=clientFactory factory-method=create/ bean id=clientFactory class=org.apache.cxf.jaxws.JaxWsProxyFactoryBean property name=serviceClass value=demo.spring.HelloWorld/ property name=address value=http://localhost:9090/spring_http/ws/ServerEndPoint/ /bean /beans -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14692146.html Sent from the cxf-user mailing list archive at Nabble.com.
Eclipse STP plugin generate not-correct wsdl file for version SOAP1.2
Apache CXF WSDL Generateion Options to SOAP1.2 JAX-WS RI WSDL Generateion Options to SOAP1.2 Below is my interface and the generated wsdl file. The wsdl file shows warning: WS-I:(AP2901) A description uses neither the WSDL MIME Binding as described in WSDL 1.1 Section 5 nor WSDL SOAP binding as described in WSDL 1.1 section 3 on each of the wsdl:input or wsdl:output elements of a wsdl:binding If I generate code based on this wsdl file, it won't work. How should I modify this wsdl file? @WebService(name=HelloWorld, targetNamespace=http://spring.demo/;) public interface HelloWorld { @WebMethod(operationName=sayHi, exclude=false) @ResponseWrapper(className=demo.spring.SayHiResponse, localName=sayHiResponse, targetNamespace=http://spring.demo/;) @RequestWrapper(className=demo.spring.SayHi, localName=sayHi, targetNamespace=http://spring.demo/;) public java.lang.String sayHi( java.lang.String text ); } ?xml version=1.0 encoding=UTF-8? wsdl:definitions name=HelloWorldService targetNamespace=http://spring.demo/; xmlns:tns=http://spring.demo/; xmlns:soap12=http://schemas.xmlsoap.org/wsdl/soap12/; xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; wsdl:types xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:tns=http://spring.demo/; attributeFormDefault=unqualified elementFormDefault=unqualified targetNamespace=http://spring.demo/; xsd:element name=sayHi type=tns: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=tns: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 name=parameters element=tns:sayHiResponse /wsdl:part /wsdl:message wsdl:message name=sayHi wsdl:part name=parameters element=tns:sayHi /wsdl:part /wsdl:message wsdl:portType name=HelloWorld wsdl:operation name=sayHi wsdl:input name=sayHi message=tns:sayHi /wsdl:input wsdl:output name=sayHiResponse message=tns:sayHiResponse /wsdl:output /wsdl:operation /wsdl:portType wsdl:binding name=HelloWorldServiceSoapBinding type=tns:HelloWorld soap12:binding style=document transport=http://www.w3.org/2003/05/soap/bindings/HTTP// wsdl:operation name=sayHi soap12:operation soapAction= style=document/ wsdl:input name=sayHi soap12:body use=literal/ /wsdl:input wsdl:output name=sayHiResponse soap12:body use=literal/ /wsdl:output /wsdl:operation /wsdl:binding wsdl:service name=HelloWorldService wsdl:port name=HelloWorldPort binding=tns:HelloWorldServiceSoapBinding soap12:address location=http://localhost:9090/hello/ /wsdl:port /wsdl:service /wsdl:definitions -- View this message in context: http://www.nabble.com/Eclipse-STP-plugin-generate-not-correct-wsdl-file-for-version-SOAP1.2-tp14694230p14694230.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: How to set Soap version on client side
Look here for setting soap 1.2 on endpoint: http://www.nabble.com/SOAP-1.2-spring-config-to12494148.html#a12497388 DM 2008/1/8, yulinxp [EMAIL PROTECTED]: Thanks! I will definitly give it a try. Now I need to solve some problem to even generate soap1.2 wsdl file first :( Well, I use following configuration (example) 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:soap=http://cxf.apache.org/bindings/soap; 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/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd; import resource=classpath:META-INF/cxf/cxf.xml / import resource=classpath:META-INF/cxf/cxf-extension-http.xml / import resource=classpath:META-INF/cxf/cxf-extension-soap.xml / import resource=classpath:META-INF/cxf/cxf-servlet.xml / jaxws:client id=spring_id serviceClass=some.service.class address=some_service_address jaxws:binding soap:soapBinding version=1.2/ /jaxws:binding /jaxws:client /beans DM -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14694295.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: GZIP compression done properly
ianroberts wrote: I've been working on a pair of interceptors to properly support GZIP compression of requests and responses in CXF, but I've run into a few problems. Aargh, slip of the fingers - I started writing this mail when I was having problems but I think I've solved them now... Ian -- Ian Roberts | Department of Computer Science [EMAIL PROTECTED] | University of Sheffield, UK
GZIP compression done properly
I've been working on a pair of interceptors to properly support GZIP compression of requests and responses in CXF, but I've run into a few problems. I based my work on the example GZIP interceptor in samples/configuration_interceptor but with modifications to (1) be compatible with MTOM/SwA (2) set (outgoing) and respect (incoming) the Content-Encoding HTTP header (3) work properly with large messages Would you be interested in me contributing these interceptors to the project, and if so what's the best way to do so? JIRA? Ian -- View this message in context: http://www.nabble.com/GZIP-compression-done-properly-tp14695885p14695885.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: Eclipse STP plugin generate not-correct wsdl file for version SOAP1.2
I figure it out. My client was not connecting correctly. But I found another problem with STP pluggin. When first creating a JAX-WS Java First Project, I select Runtime. If the runtime is set to SOAP1.1, the wsdl file will be used SOAP1.1. But if I try to change to SOAP1.2, the wsdl will still stick to the original setting SOAP1.1. So is there a way to change runtime selection after the project is created? -- View this message in context: http://www.nabble.com/Eclipse-STP-plugin-generate-not-correct-wsdl-file-for-version-SOAP1.2-tp14694230p14697355.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: Rest Header Info
Thanks. I'm using jsr311 so that's mixed news. I voted on that issue, however I'll need to formulate a workaround in the meantime. I suppose I'll need to create objects that include the security information along with the required data for the method execution. This is acceptable in posts, and puts, however the gets and deletes will now require parameters be passed through the URL. So that'll be ugly. Arg. On Jan 8, 2008 3:21 AM, Liu, Jervis [EMAIL PROTECTED] wrote: Are you using CXF HTTP Binding to build your REST service, or CXF JAX-RS (JSR-311) instead? In CXF JAX-RS (JSR-311), the standard way to access HTTP headers is using @HeaderParam, like below: @HttpMethod(GET) @UriTemplate(/books/{bookId}/) public Book getBook(@UriParam(bookId) String id, @HeaderParam (httpheaderName) String headerValue) { } Of course, this @HeaderParam feature is not implemented yet in CXF :-). But can be supported very quickly if people started asking for it. See JIRA https://issues.apache.org/jira/browse/CXF-1011 Cheers, Jervis -Original Message- From: Todd Orr [mailto:[EMAIL PROTECTED] Sent: 2008年1月8日 12:19 To: cxf-user@incubator.apache.org Subject: Rest Header Info I need to get some header info during REST requests for security checks. I tried to use the @Resource WebServiceContext method described in the WS documents but quickly learned that this doesn't work. Is there any method for RESTful services to do this? IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: how to handle exception in CXF
I have figure out the reason. The reason is SOAP version not matched in server/client side. Here is the post for setting client use SOAP1.2 http://www.nabble.com/How-to-set-Soap-version-on-client-side-td14692146.html Interesting, this only happens when Server side throws exception(Soap12FaultOutInterceptor). If server SOAP1.2 doesn't throw exception, Client SOAP1.1 can handle it. -- yulinxp wrote: In Eclipse, I was using SOAP1.2 for WSDL Generation Option. On Server side, I have the following error: Dec 26, 2007 1:48:25 PM org.apache.cxf.binding.soap.interceptor.Soap12FaultOutIn terceptor handleMessage INFO: class org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptorapp lication/soap+xml Everything works fine after I changed to use SOAP1.1. Now the question is why SOAP1.2 is not working for CXF? -- View this message in context: http://www.nabble.com/how-to-handle-exception-in-CXF-tp14505864p14698413.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: How to set Soap version on client side
For my client, I look into the src to find out the setting for SOAP1.2. I don't know whether there's a better way. bean id=client class=demo.spring.HelloWorld factory-bean=clientFactory factory-method=create/ bean id=clientFactory class=org.apache.cxf.jaxws.JaxWsProxyFactoryBean property name=serviceClass value=demo.spring.HelloWorld/ property name=address value=http://localhost:80/spring_http/ws/ServerEndPoint/ !-- javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING -- property name=bindingId value=http://www.w3.org/2003/05/soap/bindings/HTTP// /bean - Dušan Mamrilla wrote: Look here for setting soap 1.2 on endpoint: http://www.nabble.com/SOAP-1.2-spring-config-to12494148.html#a12497388 DM 2008/1/8, yulinxp [EMAIL PROTECTED]: Thanks! I will definitly give it a try. Now I need to solve some problem to even generate soap1.2 wsdl file first :( Well, I use following configuration (example) 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:soap=http://cxf.apache.org/bindings/soap; 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/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd; import resource=classpath:META-INF/cxf/cxf.xml / import resource=classpath:META-INF/cxf/cxf-extension-http.xml / import resource=classpath:META-INF/cxf/cxf-extension-soap.xml / import resource=classpath:META-INF/cxf/cxf-servlet.xml / jaxws:client id=spring_id serviceClass=some.service.class address=some_service_address jaxws:binding soap:soapBinding version=1.2/ /jaxws:binding /jaxws:client /beans DM -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14694295.html Sent from the cxf-user mailing list archive at Nabble.com. -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14698236.html Sent from the cxf-user mailing list archive at Nabble.com.
RE: GZIP compression done properly
Hi Ian, this contribution is very welcome. So your change is based on the existing configuration_interceptor demo, right? Please file a jira with your code as attachment, that should be enough. Thanks. Cheers, Jervis -Original Message- From: ianroberts [mailto:[EMAIL PROTECTED] Sent: 2008年1月9日 2:43 To: cxf-user@incubator.apache.org Subject: GZIP compression done properly I've been working on a pair of interceptors to properly support GZIP compression of requests and responses in CXF, but I've run into a few problems. I based my work on the example GZIP interceptor in samples/configuration_interceptor but with modifications to (1) be compatible with MTOM/SwA (2) set (outgoing) and respect (incoming) the Content-Encoding HTTP header (3) work properly with large messages Would you be interested in me contributing these interceptors to the project, and if so what's the best way to do so? JIRA? Ian -- View this message in context: http://www.nabble.com/GZIP-compression-done-properly-tp14695885p146 95885.html Sent from the cxf-user mailing list archive at Nabble.com. IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
RE: Rest Header Info
If you don’t mind going beyond the JSR-311 spec, the best way to handle this kind of security checks is using CXF interceptors [1], i.e., you check the HTTP headers in your own interceptor, if the security criteria is not satisfied, you simply stop the inbound interceptor chain and return. [1]. http://cwiki.apache.org/CXF20DOC/interceptors.html Cheers, Jervis -Original Message- From: Todd Orr [mailto:[EMAIL PROTECTED] Sent: 2008年1月9日 3:36 To: cxf-user@incubator.apache.org Subject: Re: Rest Header Info Thanks. I'm using jsr311 so that's mixed news. I voted on that issue, however I'll need to formulate a workaround in the meantime. I suppose I'll need to create objects that include the security information along with the required data for the method execution. This is acceptable in posts, and puts, however the gets and deletes will now require parameters be passed through the URL. So that'll be ugly. Arg. On Jan 8, 2008 3:21 AM, Liu, Jervis [EMAIL PROTECTED] wrote: Are you using CXF HTTP Binding to build your REST service, or CXF JAX-RS (JSR-311) instead? In CXF JAX-RS (JSR-311), the standard way to access HTTP headers is using @HeaderParam, like below: @HttpMethod(GET) @UriTemplate(/books/{bookId}/) public Book getBook(@UriParam(bookId) String id, @HeaderParam (httpheaderName) String headerValue) { } Of course, this @HeaderParam feature is not implemented yet in CXF :-). But can be supported very quickly if people started asking for it. See JIRA https://issues.apache.org/jira/browse/CXF-1011 Cheers, Jervis -Original Message- From: Todd Orr [mailto:[EMAIL PROTECTED] Sent: 2008年1月8日 12:19 To: cxf-user@incubator.apache.org Subject: Rest Header Info I need to get some header info during REST requests for security checks. I tried to use the @Resource WebServiceContext method described in the WS documents but quickly learned that this doesn't work. Is there any method for RESTful services to do this? IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: How to set Soap version on client side
http://markmail.org/message/b7w4vugla43nmj7p? Am Dienstag, den 08.01.2008, 12:43 -0800 schrieb yulinxp: For my client, I look into the src to find out the setting for SOAP1.2. I don't know whether there's a better way. bean id=client class=demo.spring.HelloWorld factory-bean=clientFactory factory-method=create/ bean id=clientFactory class=org.apache.cxf.jaxws.JaxWsProxyFactoryBean property name=serviceClass value=demo.spring.HelloWorld/ property name=address value=http://localhost:80/spring_http/ws/ServerEndPoint/ !-- javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING -- property name=bindingId value=http://www.w3.org/2003/05/soap/bindings/HTTP// /bean - Dušan Mamrilla wrote: Look here for setting soap 1.2 on endpoint: http://www.nabble.com/SOAP-1.2-spring-config-to12494148.html#a12497388 DM 2008/1/8, yulinxp [EMAIL PROTECTED]: Thanks! I will definitly give it a try. Now I need to solve some problem to even generate soap1.2 wsdl file first :( Well, I use following configuration (example) 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:soap=http://cxf.apache.org/bindings/soap; 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/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd; import resource=classpath:META-INF/cxf/cxf.xml / import resource=classpath:META-INF/cxf/cxf-extension-http.xml / import resource=classpath:META-INF/cxf/cxf-extension-soap.xml / import resource=classpath:META-INF/cxf/cxf-servlet.xml / jaxws:client id=spring_id serviceClass=some.service.class address=some_service_address jaxws:binding soap:soapBinding version=1.2/ /jaxws:binding /jaxws:client /beans DM -- View this message in context: http://www.nabble.com/How-to-set-Soap-version-on-client-side-tp14692146p14694295.html Sent from the cxf-user mailing list archive at Nabble.com.
Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy'
Hi Monica, Forget to mention . Search it in java to wsdl 's log . Regards Jim Monica Ferrero wrote: Hi Jim, Changed the logging level to FINE as you indicated and run the wsdl to java on my wsdl, but there is no such a message in there as Classes known to this context:. I've search for classes and context as well and there is nothing on those lines. There are some exceptions that I'm not sure there are relevant. I add here the last one before the error. Thanks for your help, Monica [exec] 08-Jan-2008 10:19:57 com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory get [exec] FINE: Using optimized Accessor for com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding com.sun.tools.xjc.re ader.xmlschema.bindinfo.BIGlobalBinding.getUnderscoreBinding() and void com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding.setUnderscore Binding(com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding) [exec] 08-Jan-2008 10:19:57 com.sun.xml.bind.v2.runtime.reflect.opt.Injector inject [exec] FINE: Unable to inject com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType [exec] java.lang.reflect.InvocationTargetException [exec] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [exec] at java.lang.reflect.Method.invoke(Method.java:597) [exec] at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:125) [...] [exec] at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171) [exec] Caused by: java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType [exec] at java.lang.ClassLoader.defineClass1(Native Method) [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:620) [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:465) [exec] ... 84 more Inactive hide details for Jim Ma ---08/01/2008 02:56:05---Hi Monica,Jim Ma ---08/01/2008 02:56:05---Hi Monica, From: Jim Ma [EMAIL PROTECTED] To: cxf-user@incubator.apache.org Date: 08/01/2008 02:56 Subject: Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' Hi Monica, You can change the log level to FINE (modify the log configuration file under ${CXF_HOME}/etc/logging.properties) to see if the OrderBy classes added to JAXB Context when you run java2wsdl tool . Search Classes known to this context: in the log file to see if this class is known to JAXB. Regards Jim Monica Ferrero wrote: Hi Jim, Thank you for your reply. Item and OrderBy are generated by JAXB from a schema.xsd file. I have followed your advice to see if it behaves any different but I still get the same error. The Item and therefore OrderBy classes belong to a different JAXB context: com.aaa.bbb.zzz.jaxb, but not sure if/how to indicate this? Thanks for your help, Monica Inactive hide details for Jim Ma ---07/01/2008 02:22:26---Hi ,Jim Ma ---07/01/2008 02:22:26---Hi , From: Jim Ma [EMAIL PROTECTED] To: cxf-user@incubator.apache.org Date: 07/01/2008 02:22 Subject: Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' Hi , From the error message , I think this is caused by the inner class OrderBy is not loaded into JAXB context . Can you modify this class as a outer class and try it again ? I will look it further to see if the JAXB can not load the inner static class . Thanks Jim Monica Ferrero wrote: Hi! I'm getting this error: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' when trying to generate java stubs from the wsdl. This is my original service: @WebService(endpointInterface = com.aaa.bbb.ccc.MyService) public interface MyService { [...] @WebResult(name=MyList) @WebMethod MyList getItems( @WebParam(name=listId) int listId); [...] } the MyList class: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = , propOrder = {items}) @XmlRootElement(name = myList) public class MyList { @XmlElement(required = true) private ListItem items; public ListItem getItems() { if (items == null) { items = new ArrayListItem(); } return items; } public void setItems(ListItem items) { this.items = items; } } The Item is a JAXB generated file from a schema: @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = , propOrder = { attributesPD, orderBy })
Re: exposed methods with Aegis binding
Hi, Aegis Binding is a data binding , it will not effect which method will be export to the web service. If you are using JaxWs front end , you could use the annotation to define your SEI ( which will be mapped to the WSDL operation) You can find the example here[1]. [1]https://svn.apache.org/repos/asf/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/Hello.java Willem. tcs wrote: I'm using CXF (with Aegis Binding) to create a simple Web Service. My web service impl. class extends other classes. Not only are the methods in my web service impl. class exposed in the WSDL generated by CXF, but methods from the parent class are also exposed. Is there a way to control which methods are exposed using the default Aegis Binding. thanks,
Re: exposed methods with Aegis binding
Basically, you can use the @WebMethod(exclude=true) to exclude the methods that you don't want it to be exposed. James Hi, Aegis Binding is a data binding , it will not effect which method will be export to the web service. If you are using JaxWs front end , you could use the annotation to define your SEI ( which will be mapped to the WSDL operation) You can find the example here[1]. [1]https://svn.apache.org/repos/asf/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/jaxws/Hello.java Willem. tcs wrote: I'm using CXF (with Aegis Binding) to create a simple Web Service. My web service impl. class extends other classes. Not only are the methods in my web service impl. class exposed in the WSDL generated by CXF, but methods from the parent class are also exposed. Is there a way to control which methods are exposed using the default Aegis Binding. thanks,