[JBoss JIRA] Created: (JBWS-2088) Relax matching requirements in decodeMultipartRelatedMessage()
by David Boeren (JIRA)
Relax matching requirements in decodeMultipartRelatedMessage()
--------------------------------------------------------------
Key: JBWS-2088
URL: http://jira.jboss.com/jira/browse/JBWS-2088
Project: JBoss Web Services
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jbossws-native
Affects Versions: jbossws-native-2.0.4
Reporter: David Boeren
Apache Axis sends a slightly non-standard value in the Content-Type which many WS implementations accept but JBossWS does not, and this is interfering with multipart related service calls.
The "start" tag in the Content-Type has an incorrect format. It is this:
start="0.urn:uuid:278C3ADFCFF3AF170A1206560191992@apache.org";
but it should be this:
start="<0.urn:uuid:278C3ADFCFF3AF170A1206560191992@apache.org>";
To work around that problem, change this method: org.jboss.ws.core.soap.attachment.MultipartRelatedDecoder.decodeMultipartRelatedMessage
Change this:
public void decodeMultipartRelatedMessage(InputStream stream) throws IOException, MessagingException
{
String boundaryParameter = contentType.getParameter("boundary");
String start = contentType.getParameter("start");
to this:
public void decodeMultipartRelatedMessage(InputStream stream) throws IOException, MessagingException
{
String boundaryParameter = contentType.getParameter("boundary");
String start = null
--
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
16 years, 5 months
[JBoss JIRA] Created: (JBWS-2239) Provide a way to reuse Web Services proxies across multiple invocations from within EJBs
by Torsten Mielke (JIRA)
Provide a way to reuse Web Services proxies across multiple invocations from within EJBs
----------------------------------------------------------------------------------------
Key: JBWS-2239
URL: http://jira.jboss.com/jira/browse/JBWS-2239
Project: JBoss Web Services
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: jbossws-jaxrpc
Affects Versions: jbossws-2.0.2
Reporter: Torsten Mielke
This feature request is in relation to JBWS-1519 (Web Services proxy not thread safe).
When a SLSB uses a web services proxy for outgoing calls, it is highly desirable to reuse the same proxy object across multiple invocations on the SLSB.
The reason for that is very simple: the CPU cycles required to lookup and create the port are higher than the call itself.
Here some numbers for a simple ejb3 web service. In our opinion the getPort() operation costs too much to do in each call (the lookup of the service can be done just once without having problems with concurrency).
lookup 1264.7 ms
getPort 225.7 ms
WsCall 63.9 ms
This slow performance for getPort() is the reason for looking for a faster solution (e.g. re-use a proxy across multiple EJB invocations).
Storing the proxy in a servlet context is not a solution, it is even "forbidden" indirectly in the spec because multiple requests could use the proxy concurrently. JEE lovers could wrap the web service call in a local stateless session bean where the container assures that never two calls the same bean instance.
Another workaround could be to use a thread local to store the proxy. To do it bullet prove one would have to care also about error conditions (e.g. when an expiration from transport layer occurs the thread local needs to be set to null so that subsequent calls create a new port)
But the "thread local" workaround results in ugly application code and performance matters.
Another workaround suggested to us is to implement our own pool of proxies. This is certainly possible but should rather be provided by Web services toolkit and not rely on the application developer to be implemented.
We can think of the following options (open for discussion):
1. The getPort implementation itself could use a thread local. Probably additional code that detects that a proxy is corrupt (e.g. when the underlying transport framework has a broken connection) would be required. This would result in out of the box performance improvements for anybody using this nice ws stack.
2. Provide a pool of Web services proxies that can be used to retrieve proxy objects on demand.
3. Create documentation about "How to increase the web service performance with a thread local or a stateless session bean wrapper".
--
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
16 years, 5 months