You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "carles rico (JIRA)" <ji...@apache.org> on 2010/02/23 12:28:27 UTC

[jira] Updated: (CXF-2682) Error "SOAPFaultException: Fault string, and possibly fault code, not set" in stress test.

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

carles rico updated CXF-2682:
-----------------------------

    Description: 
I'm stressing an aplication that use CXF as client webservice.

When I have about 100 concurrent threads, I can see int the log the next message. All threads don't crash.

Caused by: javax.xml.ws.soap.SOAPFaultException: Fault string, and possibly fault code, not set
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
	at $Proxy167.renderitzarFormulariXDP(Unknown Source)
	at net.gencat.sit.traint.adapter.ServeiFormularisAdapter.renderitzarFormulari(ServeiFormularisAdapter.java:229)
	... 117 more
Caused by: java.lang.ArrayIndexOutOfBoundsException


The main invocation code in ServeiFormularisAdapter is:

         private JaxWsProxyFactoryBean factory;
 
	private ServeisAdobePortType obtenirServeisAdobe() {
		
		if (log.isDebugEnabled()) {
			log.debug("-> obtenirServeisAdobe(urlSF:"+urlSF+")");
		}
			
               if (factory==null) {
		   factory = new JaxWsProxyFactoryBean();
		   factory.getInInterceptors().add(new LoggingInInterceptor());
		   factory.getOutInterceptors().add(new LoggingOutInterceptor());
		   factory.setServiceClass(ServeisAdobePortType.class);
		   factory.setAddress(urlSF);
		}
		ServeisAdobePortType client = (ServeisAdobePortType) factory.create();
		
		if (log.isDebugEnabled()) {
			log.debug("<- obtenirServeisAdobe():"+client);
		}
		return client;
	}

	public byte[] renderitzarFormulari(String xml, InvocacioFormulari invocacioFormulari, String format) throws ServeiFormularisSystemException {
       			try {
                           ServeisAdobePortType client = obtenirServeisAdobe();
		
			   result = client.renderitzarFormulariXDP(invocacioFormulari.getAmbit(),
						 invocacioFormulari.getAplicacio(),
						 invocacioFormulari.getNomFormulari(),
						 xml.getBytes("UTF-8"),
						 format);
                       }
                      catch(Throwable ex) {
                                log.error("Error",ex);
                                throw new ServeiFormularisSystemException(ex);
                     }
       }	


factory is a singleton and all threads use this instance without sinchronize. Its a problem ?
I think, the real exception is the java.lang.ArrayIndexOutOfBoundsException but I can't see the stacktrace.

Could you help me?

Thank's,

Best regards,

Carles.


  was:
I'm stressing an aplication that use CXF as client webservice.

When I have about 100 concurrent threads, I can see int the log the next message. All threads don't crash.

Caused by: javax.xml.ws.soap.SOAPFaultException: Fault string, and possibly fault code, not set
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
	at $Proxy167.renderitzarFormulariXDP(Unknown Source)
	at net.gencat.sit.traint.adapter.ServeiFormularisAdapter.renderitzarFormulari(ServeiFormularisAdapter.java:229)
	... 117 more
Caused by: java.lang.ArrayIndexOutOfBoundsException


The main invocation code in ServeiFormularisAdapter is:

         private JaxWsProxyFactoryBean factory;
 
	private ServeisAdobePortType getAdobeService() {
		
		if (log.isDebugEnabled()) {
			log.debug("-> obtenirServeisAdobe(urlSF:"+urlSF+")");
		}
			
               if (factory==null) {
		   factory = new JaxWsProxyFactoryBean();
		   factory.getInInterceptors().add(new LoggingInInterceptor());
		   factory.getOutInterceptors().add(new LoggingOutInterceptor());
		   factory.setServiceClass(ServeisAdobePortType.class);
		   factory.setAddress(urlSF);
		}
		ServeisAdobePortType client = (ServeisAdobePortType) factory.create();
		
		if (log.isDebugEnabled()) {
			log.debug("<- obtenirServeisAdobe():"+client);
		}
		return client;
	}

	public byte[] renderitzarFormulari(String xml, InvocacioFormulari invocacioFormulari, String format) throws ServeiFormularisSystemException {
       			try {
                           ServeisAdobePortType client = obtenirServeisAdobe();
		
			   result = client.renderitzarFormulariXDP(invocacioFormulari.getAmbit(),
						 invocacioFormulari.getAplicacio(),
						 invocacioFormulari.getNomFormulari(),
						 xml.getBytes("UTF-8"),
						 format);
                       }
                      catch(Throwable ex) {
                                log.error("Error",ex);
                                throw new ServeiFormularisSystemException(ex);
                     }
       }	


factory is a singleton and all threads use this instance without sinchronize. Its a problem ?
I think, the real exception is the java.lang.ArrayIndexOutOfBoundsException but I can't see the stacktrace.

Could you help me?

Thank's,

Best regards,

Carles.



> Error "SOAPFaultException: Fault string, and possibly fault code, not set"  in stress test.
> -------------------------------------------------------------------------------------------
>
>                 Key: CXF-2682
>                 URL: https://issues.apache.org/jira/browse/CXF-2682
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.5
>            Reporter: carles rico
>            Priority: Critical
>
> I'm stressing an aplication that use CXF as client webservice.
> When I have about 100 concurrent threads, I can see int the log the next message. All threads don't crash.
> Caused by: javax.xml.ws.soap.SOAPFaultException: Fault string, and possibly fault code, not set
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145)
> 	at $Proxy167.renderitzarFormulariXDP(Unknown Source)
> 	at net.gencat.sit.traint.adapter.ServeiFormularisAdapter.renderitzarFormulari(ServeiFormularisAdapter.java:229)
> 	... 117 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> The main invocation code in ServeiFormularisAdapter is:
>          private JaxWsProxyFactoryBean factory;
>  
> 	private ServeisAdobePortType obtenirServeisAdobe() {
> 		
> 		if (log.isDebugEnabled()) {
> 			log.debug("-> obtenirServeisAdobe(urlSF:"+urlSF+")");
> 		}
> 			
>                if (factory==null) {
> 		   factory = new JaxWsProxyFactoryBean();
> 		   factory.getInInterceptors().add(new LoggingInInterceptor());
> 		   factory.getOutInterceptors().add(new LoggingOutInterceptor());
> 		   factory.setServiceClass(ServeisAdobePortType.class);
> 		   factory.setAddress(urlSF);
> 		}
> 		ServeisAdobePortType client = (ServeisAdobePortType) factory.create();
> 		
> 		if (log.isDebugEnabled()) {
> 			log.debug("<- obtenirServeisAdobe():"+client);
> 		}
> 		return client;
> 	}
> 	public byte[] renderitzarFormulari(String xml, InvocacioFormulari invocacioFormulari, String format) throws ServeiFormularisSystemException {
>        			try {
>                            ServeisAdobePortType client = obtenirServeisAdobe();
> 		
> 			   result = client.renderitzarFormulariXDP(invocacioFormulari.getAmbit(),
> 						 invocacioFormulari.getAplicacio(),
> 						 invocacioFormulari.getNomFormulari(),
> 						 xml.getBytes("UTF-8"),
> 						 format);
>                        }
>                       catch(Throwable ex) {
>                                 log.error("Error",ex);
>                                 throw new ServeiFormularisSystemException(ex);
>                      }
>        }	
> factory is a singleton and all threads use this instance without sinchronize. Its a problem ?
> I think, the real exception is the java.lang.ArrayIndexOutOfBoundsException but I can't see the stacktrace.
> Could you help me?
> Thank's,
> Best regards,
> Carles.

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