You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Tomasz Sikora (JIRA)" <ji...@apache.org> on 2017/05/22 08:59:04 UTC

[jira] [Commented] (CXF-7076) Intermittent failure in WSDL cache

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

Tomasz Sikora commented on CXF-7076:
------------------------------------

We have been experiencing the same intermittent issue in prod env currently. Unfortunately the same resolution is in place: ... if the cache is corrupted, we have to restart the application (no recovery)

We are unable to replicate the problem in test envs. Neither under a load test nor in the soak test (259M hits) running for 3+ days. We are planning to apply the same change as did by [~mstettler].

{quote}
WSDLManager wsdlManager = CXFBusFactory.getThreadDefaultBus().getExtension(WSDLManager.class);
((WSDLManagerImpl)wsdlManager).setDisableSchemaCache(true);
{quote}

It would be great if someone could please help us to understand more the cache nature. Hoping to have a patch to prod at the end of the week, 26..27th May.

{quote}
What is this cache for? Just for performance? Could deactivate it be an workaround? Would this be correct:
{quote}

> Intermittent failure in WSDL cache
> ----------------------------------
>
>                 Key: CXF-7076
>                 URL: https://issues.apache.org/jira/browse/CXF-7076
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime, Services
>    Affects Versions: 3.1.1
>         Environment: Oracle JDK 1.8.0_91
> Tomcat 8.0.23
>            Reporter: Marco Stettler
>            Priority: Blocker
>
> We have an error in the production environment that we can't reproduce locally. The error:
> {quote}
> Caused by: org.apache.cxf.wsdl11.WSDLRuntimeException: Part parameters defined as element http://mynamespace MyService which is not in the schema.
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildMessage(WSDLServiceBuilder.java:886)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildInterfaceOperation(WSDLServiceBuilder.java:615)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildInterface(WSDLServiceBuilder.java:593)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:353)
> 	at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:209)
> 	at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:162)
> 	at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:405)
> 	at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:525)
> 	at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:261)
> 	at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
> 	at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
> 	at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:91)
> 	at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:157)
> 	at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142)
> 	at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:493)
> 	at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359)
> 	at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:350)
> 	at javax.xml.ws.Service.getPort(Service.java:119)
> 	at ch.mynamespace.MyService.getMyService()
> {quote}
> It looks like the WSDLManagerImpl gives not the correct cached SchemaCollection for the Service. Following the code for creating the client:
> {quote}
> private static final URL WSDL_RESOURCE = MyTest.class.getClassLoader().getResource("/wsdl/MyService.wsdl");
> ...
>               MyServicePort  myServicePort = new MyService(WSDL_RESOURCE).getMyService();
> {quote}
> This runs per invocation. We are on a webservice intermediate, so its possible to run in some sort of concurrency problem. As mentioned before, the error occours intermittent (about every 2 weeks). We are speaking about some load, but not that heavy (about 15k requests per day).
> I think it could be the same as there:
> https://issues.jboss.org/browse/JBWS-3973
> I'll inform if I have updates. As the production environment is involved, i have to investigate and must have a solution as quick as possible.
> Thanks
> Marco



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)