cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jara Cesnek (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-2673) JaxWsProxyFactoryBean and JaxWsServerFactoryBean communication broken in some cases after upgrade to 2.2.7
Date Wed, 17 Feb 2010 08:52:27 GMT

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

Jara Cesnek commented on CXF-2673:
----------------------------------

OK, I can made both namepsace same. No problem.

But I have about 100 SEI interfaces and I need to automate this - not write every namespace
twice.
I tryied modify AegisDatabinding class like this (switch reading impl namespace to SEI interface)

{code}
            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(AopUtils.getTargetClass(implementor))
{

                @Override
                public QName getServiceName() {

                    QName endpointName = super.getServiceName();
                    return new QName( getInterfaceName().getNamespaceURI(), endpointName.getLocalPart(),
endpointName.getPrefix() );
                }

                @Override
                public QName getEndpointName() {

                    QName endpointName = super.getEndpointName();
                    return new QName( getInterfaceName().getNamespaceURI(), endpointName.getLocalPart(),
endpointName.getPrefix() );
                }
            };
            JaxWsServiceFactoryBean customizedServicefactoryBean = new JaxWsServiceFactoryBean(implInfo);
            JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean(customizedServicefactoryBean);
{code}

but I find-out that same job I can do with this

{code}
            JaxWsImplementorInfo implInfo = new JaxWsImplementorInfo(AopUtils.getTargetClass(implementor));
            JaxWsServiceFactoryBean customizedServicefactoryBean = new JaxWsServiceFactoryBean(implInfo);
            JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean(customizedServicefactoryBean);
{code}

I am happy with this. But I hope this is stable solution. I feel little magic.

> JaxWsProxyFactoryBean and JaxWsServerFactoryBean communication broken in some cases after
upgrade to 2.2.7
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-2673
>                 URL: https://issues.apache.org/jira/browse/CXF-2673
>             Project: CXF
>          Issue Type: Bug
>          Components: Aegis Databinding, JAX-WS Runtime
>    Affects Versions: 2.2.7
>            Reporter: Jara Cesnek
>            Assignee: Daniel Kulp
>            Priority: Blocker
>             Fix For: 2.2.7
>
>         Attachments: cxf-2673-cxf-jaxws-aegis-testcase.zip
>
>
> When using JaxWsProxyFactoryBean and JaxWsServerFactoryBean with AegisDataBinding some
interfaces is broken and all methods call result in NULL.
> When contract interface contains method with parameters of type List<Integer> *AND
NOT CONTAIN* method with return type "List<Integer>" then all methods call return NULL.
> Server code:
> {code}
>         JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean();
>         serverFactoryBean.setServiceClass(AopUtils.getTargetClass(implementor)); //WSImpl.class
>         serverFactoryBean.setServiceBean(implementor);             //WSImpl.class
>         serverFactoryBean.setDataBinding(new AegisDatabinding());
>         serverFactoryBean.setAddress(url);
>         serverFactoryBean.setBus(cxfServlet.getBus());
>         serverFactoryBean.create();
> {code}
> Client code:
> {code}
>             JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>             factory.setServiceClass(resultInterfaceClass);                 //WS.class
>             factory.setAddress(asURL);
>             factory.setDataBinding(new AegisDatabinding());
>             Object remoteInterfaceImpl = factory.create();
> {code}
> Interface:
> {code}
> @WebService(name="cesnek", targetNamespace="http://ns1")
> public interface WS {
>    
>     Integer zalozNovyDokument(@WebParam(name = "idTypDokument") Integer idTypDokument);
>     void vratDmsDokumenty(@WebParam(name = "idDmsDokumentList") List<Integer> idDmsDokumentList);
>     //When next line is un-commented - bug disappears and all working fine!
>     //List<Integer> vratDmsDokumenty();
> }
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message