cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Mazza (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-4054) Unclear error messages given if client policy configuration can't be found.
Date Mon, 23 Jan 2012 17:18:40 GMT
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


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