[ 
https://issues.apache.org/jira/browse/CXF-4054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13395810#comment-13395810
 ] 

Colm O hEigeartaigh commented on CXF-4054:
------------------------------------------


Looks fine to me...

Colm.
                
> Unclear error messages given if client policy configuration can't be found.
> ---------------------------------------------------------------------------
>
>                 Key: CXF-4054
>                 URL: https://issues.apache.org/jira/browse/CXF-4054
>             Project: CXF
>          Issue Type: Bug
>            Reporter: Glen Mazza
>            Assignee: Glen Mazza
>            Priority: Minor
>         Attachments: CXF4054.patch
>
>
> Dennis has noted: 
> http://cxf.547215.n5.nabble.com/Invalid-property-bus-of-bean-class-error-Spring-problem-tp5163771p5165056.html
> With this tutorial: 
> http://www.jroller.com/gmazza/entry/cxf_x509_profile_secpol, in particular, 
> the WSC config file within it:
> <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";>
>    <jaxws:client 
> name="{http://www.example.org/contract/DoubleIt}DoubleItPort"; 
> createdFromAPI="true">
>       <jaxws:properties>
>          <entry key="ws-security.callback-handler" 
> value="client.ClientKeystorePasswordCallback"/>        
>          <entry key="ws-security.encryption.properties" 
> value="clientKeystore.properties"/>
>          <entry key="ws-security.signature.properties" 
> value="clientKeystore.properties"/>
>          <entry key="ws-security.encryption.username" value="myservicekey"/>
>       </jaxws:properties>
>    </jaxws:client>
> </beans>
> Usage of an incorrect port name in the "name" attribute of the jaxws:client 
> element gives unhelpful/confusing error messages.  
> If the port name doesn't exist at all (e.g., 
> "{http://www.example.org/contract/DoubleIt}DoubleItXYZ";), the reader gets 
> this error:
> WARNING: Interceptor for 
> {http://www.example.org/contract/DoubleIt}DoubleItService#{http://www.example.org/contract/DoubleIt}DoubleIt
>  has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: No signature username found.
>       at 
> org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignBeforeEncrypt(AsymmetricBindingHandler.java:172)
>       at 
> org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.handleBinding(AsymmetricBindingHandler.java:96)
>       at 
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:164)
>       at 
> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.java:88)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
>       at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:519)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:449)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:352)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:304)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:88)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134)
>       at $Proxy24.doubleIt(Unknown Source)
>       at client.WSClient.doubleIt(WSClient.java:28)
>       at client.WSClient.main(WSClient.java:21)
> I'm not sure what should be done in this case -- because a non-matching port 
> name like the above should indeed be ignored (as it could refer to another 
> port in another WSDL), but perhaps a clearer error given that no 
> configuration was provided for the client endpoint for the port being used.
> If the service name was erroneously used instead of the port name, this error 
> is given:
> Exception in thread "main" 
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name '{http://www.example.org/contract/DoubleIt}DoubleItService': Error 
> setting property values; nested exception is 
> org.springframework.beans.NotWritablePropertyException: Invalid property 
> 'bus' of bean class [org.apache.cxf.service.ServiceImpl]: Bean property 'bus' 
> is not writable or has an invalid setter method. Does the parameter type of 
> the setter match the return type of the getter?
>       at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1361)
>       at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
> Here, an error message given that the port, and not the service name, should 
> be referred to.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to