cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Mazza (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CXF-4054) Unclear error messages given if client policy configuration can't be found.
Date Mon, 18 Jun 2012 18:07:42 GMT

     [ https://issues.apache.org/jira/browse/CXF-4054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Glen Mazza resolved CXF-4054.
-----------------------------

       Resolution: Fixed
    Fix Version/s: 2.7.0
                   2.6.2

Applied just to 2.6.x and 2.7.x branches (earlier branches were too substantively different
to allow an easy merge.)

                
> 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
>             Fix For: 2.6.2, 2.7.0
>
>         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

        

Mime
View raw message