You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Anestis Georgiadis (JIRA)" <ji...@apache.org> on 2011/03/21 18:33:05 UTC

[jira] [Created] (CXF-3410) org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)

org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)
------------------------------------------------------------------------------------------------------------------

                 Key: CXF-3410
                 URL: https://issues.apache.org/jira/browse/CXF-3410
             Project: CXF
          Issue Type: Bug
          Components: WS-* Components
    Affects Versions: 2.3.3, 2.3.2
         Environment: Apache Camel context, Maven project
            Reporter: Anestis Georgiadis


Camel context is configured to create a CXF endpoint through use of a WSDL file only (i.e. no implementor). Spring configuration definition is as follows:

<cxf:cxfEndpoint id="nireusV5"
		address="http://10.234.2.81:8080/nireus/v5"
		wsdlURL="classpath:wsdl/nireus_old.wsdl">
	<cxf:properties>
		<entry key="dataFormat" value="PAYLOAD" />
	</cxf:properties>
</cxf:cxfEndpoint>

Maven dependencies include cxf-rt-ws-policy and cxf-rt-ws-security modules, in an attempt to introduce use of WS-SecurityPolicy in the endpoint. When the camel context is starting up, the following NPE is raised:

Caused by: java.lang.NullPointerException
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.addPolicies(PolicyAnnotationListener.java:210)
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:84)
        at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:73)
        at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:179)
        at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:251)
 
PolicyAnnotationListener.addPolicies(...) method code is trying to get any declared @Policy or @Policies annotations on the class object that is being passed as argument. This object though is null, probably because no implementor object or service class is declared on the endpoint (I'm using just a WSDL).

The problem is solved, and the context is properly started-up, if the method is modified as follows:

    private void addPolicies(AbstractServiceFactoryBean factory, Server server, Class<?> cls) {
        List<Policy> list = CastUtils.cast((List<?>)server.getEndpoint().getEndpointInfo()
                                           .getInterface().removeProperty(EXTRA_POLICIES));
        if (list != null) {
            addPolicies(factory, server.getEndpoint(), cls, list, Policy.Placement.BINDING);
        }
        // --- Start of modification ---
        if (cls == null) {
            return;
        }
        // --- End of modification ---
    ...

I can provide a sample application to exhibit the problem, if that helps.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (CXF-3410) org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-3410:
-----------------------------

    Description: 
Camel context is configured to create a CXF endpoint through use of a WSDL file only (i.e. no implementor). Spring configuration definition is as follows:

{code:xml}
<cxf:cxfEndpoint id="nireusV5"
		address="http://10.234.2.81:8080/nireus/v5"
		wsdlURL="classpath:wsdl/nireus_old.wsdl">
	<cxf:properties>
		<entry key="dataFormat" value="PAYLOAD" />
	</cxf:properties>
</cxf:cxfEndpoint>
{code}

Maven dependencies include cxf-rt-ws-policy and cxf-rt-ws-security modules, in an attempt to introduce use of WS-SecurityPolicy in the endpoint. When the camel context is starting up, the following NPE is raised:

{code}
Caused by: java.lang.NullPointerException
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.addPolicies(PolicyAnnotationListener.java:210)
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:84)
        at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:73)
        at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:179)
        at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:251)
{code}

PolicyAnnotationListener.addPolicies(...) method code is trying to get any declared @Policy or @Policies annotations on the class object that is being passed as argument. This object though is null, probably because no implementor object or service class is declared on the endpoint (I'm using just a WSDL).

The problem is solved, and the context is properly started-up, if the method is modified as follows:
{code:java}
    private void addPolicies(AbstractServiceFactoryBean factory, Server server, Class<?> cls) {
        List<Policy> list = CastUtils.cast((List<?>)server.getEndpoint().getEndpointInfo()
                                           .getInterface().removeProperty(EXTRA_POLICIES));
        if (list != null) {
            addPolicies(factory, server.getEndpoint(), cls, list, Policy.Placement.BINDING);
        }
        // --- Start of modification ---
        if (cls == null) {
            return;
        }
        // --- End of modification ---
    ...
{code}

I can provide a sample application to exhibit the problem, if that helps.

  was:
Camel context is configured to create a CXF endpoint through use of a WSDL file only (i.e. no implementor). Spring configuration definition is as follows:

<cxf:cxfEndpoint id="nireusV5"
		address="http://10.234.2.81:8080/nireus/v5"
		wsdlURL="classpath:wsdl/nireus_old.wsdl">
	<cxf:properties>
		<entry key="dataFormat" value="PAYLOAD" />
	</cxf:properties>
</cxf:cxfEndpoint>

Maven dependencies include cxf-rt-ws-policy and cxf-rt-ws-security modules, in an attempt to introduce use of WS-SecurityPolicy in the endpoint. When the camel context is starting up, the following NPE is raised:

Caused by: java.lang.NullPointerException
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.addPolicies(PolicyAnnotationListener.java:210)
        at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:84)
        at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:73)
        at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:179)
        at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:251)
 
PolicyAnnotationListener.addPolicies(...) method code is trying to get any declared @Policy or @Policies annotations on the class object that is being passed as argument. This object though is null, probably because no implementor object or service class is declared on the endpoint (I'm using just a WSDL).

The problem is solved, and the context is properly started-up, if the method is modified as follows:

    private void addPolicies(AbstractServiceFactoryBean factory, Server server, Class<?> cls) {
        List<Policy> list = CastUtils.cast((List<?>)server.getEndpoint().getEndpointInfo()
                                           .getInterface().removeProperty(EXTRA_POLICIES));
        if (list != null) {
            addPolicies(factory, server.getEndpoint(), cls, list, Policy.Placement.BINDING);
        }
        // --- Start of modification ---
        if (cls == null) {
            return;
        }
        // --- End of modification ---
    ...

I can provide a sample application to exhibit the problem, if that helps.


> org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3410
>                 URL: https://issues.apache.org/jira/browse/CXF-3410
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.3.2, 2.3.3
>         Environment: Apache Camel context, Maven project
>            Reporter: Anestis Georgiadis
>
> Camel context is configured to create a CXF endpoint through use of a WSDL file only (i.e. no implementor). Spring configuration definition is as follows:
> {code:xml}
> <cxf:cxfEndpoint id="nireusV5"
> 		address="http://10.234.2.81:8080/nireus/v5"
> 		wsdlURL="classpath:wsdl/nireus_old.wsdl">
> 	<cxf:properties>
> 		<entry key="dataFormat" value="PAYLOAD" />
> 	</cxf:properties>
> </cxf:cxfEndpoint>
> {code}
> Maven dependencies include cxf-rt-ws-policy and cxf-rt-ws-security modules, in an attempt to introduce use of WS-SecurityPolicy in the endpoint. When the camel context is starting up, the following NPE is raised:
> {code}
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.ws.policy.PolicyAnnotationListener.addPolicies(PolicyAnnotationListener.java:210)
>         at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:84)
>         at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:73)
>         at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:179)
>         at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:251)
> {code}
> PolicyAnnotationListener.addPolicies(...) method code is trying to get any declared @Policy or @Policies annotations on the class object that is being passed as argument. This object though is null, probably because no implementor object or service class is declared on the endpoint (I'm using just a WSDL).
> The problem is solved, and the context is properly started-up, if the method is modified as follows:
> {code:java}
>     private void addPolicies(AbstractServiceFactoryBean factory, Server server, Class<?> cls) {
>         List<Policy> list = CastUtils.cast((List<?>)server.getEndpoint().getEndpointInfo()
>                                            .getInterface().removeProperty(EXTRA_POLICIES));
>         if (list != null) {
>             addPolicies(factory, server.getEndpoint(), cls, list, Policy.Placement.BINDING);
>         }
>         // --- Start of modification ---
>         if (cls == null) {
>             return;
>         }
>         // --- End of modification ---
>     ...
> {code}
> I can provide a sample application to exhibit the problem, if that helps.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (CXF-3410) org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-3410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-3410.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.3.4
                   2.4
         Assignee: Daniel Kulp

> org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3410
>                 URL: https://issues.apache.org/jira/browse/CXF-3410
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.3.2, 2.3.3
>         Environment: Apache Camel context, Maven project
>            Reporter: Anestis Georgiadis
>            Assignee: Daniel Kulp
>             Fix For: 2.4, 2.3.4
>
>
> Camel context is configured to create a CXF endpoint through use of a WSDL file only (i.e. no implementor). Spring configuration definition is as follows:
> {code:xml}
> <cxf:cxfEndpoint id="nireusV5"
> 		address="http://10.234.2.81:8080/nireus/v5"
> 		wsdlURL="classpath:wsdl/nireus_old.wsdl">
> 	<cxf:properties>
> 		<entry key="dataFormat" value="PAYLOAD" />
> 	</cxf:properties>
> </cxf:cxfEndpoint>
> {code}
> Maven dependencies include cxf-rt-ws-policy and cxf-rt-ws-security modules, in an attempt to introduce use of WS-SecurityPolicy in the endpoint. When the camel context is starting up, the following NPE is raised:
> {code}
> Caused by: java.lang.NullPointerException
>         at org.apache.cxf.ws.policy.PolicyAnnotationListener.addPolicies(PolicyAnnotationListener.java:210)
>         at org.apache.cxf.ws.policy.PolicyAnnotationListener.handleEvent(PolicyAnnotationListener.java:84)
>         at org.apache.cxf.service.factory.AbstractServiceFactoryBean.sendEvent(AbstractServiceFactoryBean.java:73)
>         at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:179)
>         at org.apache.camel.component.cxf.CxfConsumer.<init>(CxfConsumer.java:251)
> {code}
> PolicyAnnotationListener.addPolicies(...) method code is trying to get any declared @Policy or @Policies annotations on the class object that is being passed as argument. This object though is null, probably because no implementor object or service class is declared on the endpoint (I'm using just a WSDL).
> The problem is solved, and the context is properly started-up, if the method is modified as follows:
> {code:java}
>     private void addPolicies(AbstractServiceFactoryBean factory, Server server, Class<?> cls) {
>         List<Policy> list = CastUtils.cast((List<?>)server.getEndpoint().getEndpointInfo()
>                                            .getInterface().removeProperty(EXTRA_POLICIES));
>         if (list != null) {
>             addPolicies(factory, server.getEndpoint(), cls, list, Policy.Placement.BINDING);
>         }
>         // --- Start of modification ---
>         if (cls == null) {
>             return;
>         }
>         // --- End of modification ---
>     ...
> {code}
> I can provide a sample application to exhibit the problem, if that helps.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira