[JBoss JIRA] Created: (JBWS-2192) Asynchronous calls not thread safe
by Thomas Diesler (JIRA)
Asynchronous calls not thread safe
----------------------------------
Key: JBWS-2192
URL: http://jira.jboss.com/jira/browse/JBWS-2192
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-native
Reporter: Thomas Diesler
Fix For: jbossws-native-3.0.3
Darran sais:
I am currently looking at a support case where the customer is getting a number of errors with asynchronous JAX-WS invocations using a AsyncHandler.
I am running a couple of test cases against the two EAP releases and I am able to reproduce the behaviour that the customer is seeing but I just quickly wanted to double check what should be thread safe.
I have an async method on the SEI that returns a Future instance and takes an AsyncHandler as a parameter: -
@WebMethod(operationName = "lookup")
public Future<?> lookupAsync(final Person person,
AsyncHandler<TelephoneNumber> handler);
This pattern seems to suggest that after the call has been made any further interaction will be with the Future instance or the handler which then makes it look as though the Port is free to service other requests.
However if I submit multiple requests using the same Port then the outgoing requests start to get mixed up.
Should it be possible to re-use the same Port / SEI Proxy for multiple calls without worries of messages being mixed up?
I would have thought if the Port was not supposed to be re-used the get methods for the response would be on the Port instance and not need to use this returned interface.
I have attached the client I am using to reproduce the errors.
Creating a new Port for each request does overcome this issue but they are trying to avoid this especially as the existing Port should have passed the last request off to another thread for processing.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years
[JBoss JIRA] Created: (JBWS-2461) Request / Response Resource Optimisation
by Darran Lofthouse (JIRA)
Request / Response Resource Optimisation
----------------------------------------
Key: JBWS-2461
URL: https://jira.jboss.org/jira/browse/JBWS-2461
Project: JBoss Web Services
Issue Type: Task
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.0.5
Reporter: Darran Lofthouse
Assignee: Darran Lofthouse
Fix For: jbossws-native-3.0.6
There are a few points where the management of resources can be optimised, in these places we are relying on a few techniques that are leading to potential leaks.
The first area to optimise is the use of ThreadLocals for DocumentBuilders etc - these should be optimised to be better related to the request / response.
A second area relates to SwapableMemoryDataSource - something is needed to clean up files not automatically deleted from killed / crashed JVMs. Secondly relying on finalize to delete the files can lead to a large number of files on disk before GC especially with large heaps. Ideally these will be better associated with the current request to be cleaned up at the end of processing.
Although these are two different problems I have grouped them together as the common problem is tracking resources with the request they really belong to.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBWS-2696) Better logging for messages that can not be parsed
by Darran Lofthouse (JIRA)
Better logging for messages that can not be parsed
--------------------------------------------------
Key: JBWS-2696
URL: https://jira.jboss.org/jira/browse/JBWS-2696
Project: JBoss Web Services
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-3.1.2
Reporter: Darran Lofthouse
Assignee: Darran Lofthouse
Fix For: jbossws-native-3.2.0
The MessageFactoryImpl class uses for the following check for the content type of the incoming message: -
if (isSoapContent(contentType) == false)
{
throw new SOAPException("Unsupported content type: " + contentType);
}
For various servers even though the incoming message is not a SOAP message the message may still contain useful information that could help diagnose the failure.
Consider adding an option to still log the payload of the incoming message.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month
[JBoss JIRA] Created: (JBWS-2379) Using a custom HandlerResolver on client while using WS-Security does not add ws-security header to soap envelope
by Yousuf Haider (JIRA)
Using a custom HandlerResolver on client while using WS-Security does not add ws-security header to soap envelope
-----------------------------------------------------------------------------------------------------------------
Key: JBWS-2379
URL: https://jira.jboss.org/jira/browse/JBWS-2379
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: ws-security
Affects Versions: jbossws-2.0.1.SP2
Environment: JBoss4.3
JDK1.5
Reporter: Yousuf Haider
I have a webservice deployed as an EJB endpoint with the correct WS-Security Configuration (using UsernameToken)
My standalone java client code looks like this:
ReflectorEjbWsseApi port = null;
Service service = (Service) Service.create(wsdlURL, serviceQName);
service.setHandlerResolver(new CustomHandlerResolver);
port = service.getPort(ReflectorEjbWsseApi.class);
HandlerResolver hr = new HandlerResolver();
((BindingProvider)port).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, WebServiceConstants.USERNAME);
((BindingProvider)port).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, WebServiceConstants.PASSWORD);
URL securityURL = new File("jboss-wsse-client.xml").toURL();
((StubExt)port).setSecurityConfig(securityURL.toExternalForm());
((StubExt) port).setConfigName("Standard WSSecurity Client");
((BindingProvider)port).getRequestContext().put(StubExt.PROPERTY_AUTH_TYPE, StubExt.PROPERTY_AUTH_TYPE_WSSE);
As you can see I am setting my own custom HandlerResolver. However by doing this I am somehow overriding the default HandlerChain which would have used the USERNAME_PROPERTY and PASSWORD_PROPERTY values and added the ws-security header to the soap message.
When executing this code I get a SOAPFault from the server saying that the soap message does not contain a required header.
javax.xml.ws.soap.SOAPFaultException: org.jboss.ws.core.CommonSOAPFaultException: This service requires <wsse:Security>, which is missing.
If I don't set the handlerResolver by removing this line from my client:
service.setHandlerResolver(new CustomHandlerResolver);
the request goes through fine and I get a valid response.
My own customhandlers do nothing but some logging activity. I should be able to use my own custom handlers with WS-Security.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 1 month