[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, 6 months
[JBoss JIRA] Created: (JBWS-1684) Fix @WebServiceRef with XFire
by Thomas Diesler (JIRA)
Fix @WebServiceRef with XFire
-----------------------------
Key: JBWS-1684
URL: http://jira.jboss.com/jira/browse/JBWS-1684
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: integration-sunri
Reporter: Thomas Diesler
Assigned To: Thomas Diesler
Fix For: jbossws-2.1.0
Caused by: org.jboss.kernel.spi.registry.KernelRegistryEntryNotFoundException: Entry not found with name: ServiceRefHandler
at org.jboss.kernel.plugins.registry.AbstractKernelRegistry.getEntry(AbstractKernelRegistry.java:89)
at org.jboss.metadata.serviceref.ServiceRefDelegate.<init>(ServiceRefDelegate.java:64)
at org.jboss.injection.WebServiceRefHandler.getServiceRef(WebServiceRefHandler.java:146)
at org.jboss.injection.WebServiceRefHandler.handleFieldAnnotations(WebServiceRefHandler.java:133)
at org.jboss.injection.InjectionUtil.processFieldAnnotations(InjectionUtil.java:137)
at org.jboss.injection.InjectionUtil.processAnnotations(InjectionUtil.java:174)
at org.jboss.ejb3.EJBContainer.processMetadata(EJBContainer.java:366)
at org.jboss.ejb3.SessionContainer.processMetadata(SessionContainer.java:116)
--
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, 6 months
[JBoss JIRA] Created: (JBWS-1857) Never create the same JAXBContext more than once
by Johann Gyger (JIRA)
Never create the same JAXBContext more than once
------------------------------------------------
Key: JBWS-1857
URL: http://jira.jboss.com/jira/browse/JBWS-1857
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-jaxws
Affects Versions: jbossws-1.2.1
Reporter: Johann Gyger
service.getPort() may become an expensive operation (i.e., several seconds) when using a non-trivial WSDL with complex types. We have been able to track down our performance problems to an incorrect usage of JAXB-RI in JBOSS-JAXWS. According to https://wsit.dev.java.net/servlets/ReadMsg?list=dev&msgNo=66, creating new instances of JAXBContext is an expensive operation.
In our WSDL we counted 28 instance creations of JAXBContext. Most of them are created through the following call hierarchy:
JAXBContext.newInstance(Class[], Map<String,?>) line: 570
JAXBContext.newInstance(Class...) line: 522
JAXBAccessor$1.create(Class) line: 67
JAXBAccessor$1.create(ParameterMetaData) line: 54
ParameterMetaData.eagerInitialize() line: 470
OperationMetaData.eagerInitialize(List<Method>) line: 469
ClientEndpointMetaData(EndpointMetaData).eagerInitializeOperations() line: 516
ClientEndpointMetaData(EndpointMetaData).initializeInternal() line: 502
ClientEndpointMetaData(EndpointMetaData).eagerInitialize() line: 490
JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(EndpointMetaData, Class<?>) line: 292
ServiceDelegateImpl.getPortInternal(EndpointMetaData, Class<T>) line: 274
ServiceDelegateImpl.getPort(QName, Class<T>) line: 200
A JProbe analysis (see attached file) revealed that actually most of the time (96.4%) of service.getPort() is spent in JAXBContext.newInstance(). Please see attached JProbe report.
Compared to JAX-WS RI (Metro) the performance of service.getPort() is extremely bad.
--
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, 6 months
[JBoss JIRA] Created: (JBWS-2087) WSDL fault exception is wrapped in WebService exception when using JbossWS-Metro.
by Mattias ᅢヨhrn (JIRA)
WSDL fault exception is wrapped in WebService exception when using JbossWS-Metro.
---------------------------------------------------------------------------------
Key: JBWS-2087
URL: http://jira.jboss.com/jira/browse/JBWS-2087
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-metro
Affects Versions: jbossws-metro-1.0.0
Environment: JBoss AS 4.2.2
Reporter: Mattias ᅢヨhrn
When a web service implementation bean throws a contract exception it is wrapped in a WebService exception.
The following stack trace appears in the server log:
11:21:25,122 ERROR [EndpointMethodHandler] com.acme.metroexceptiontest.MetroTestException: Test msg
javax.xml.ws.WebServiceException: com.acme.metroexceptiontest.MetroTestException: Test msg
at org.jboss.wsf.stack.sunri.InvokerEJB3.handleException(InvokerEJB3.java:117)
at org.jboss.wsf.stack.sunri.InvokerEJB3.invoke(InvokerEJB3.java:103)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:106)
at org.jboss.wsf.stack.sunri.log.DumpPipe.process(DumpPipe.java:99)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
at org.jboss.wsf.stack.sunri.RequestHandlerImpl.doPost(RequestHandlerImpl.java:122)
at org.jboss.wsf.stack.sunri.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:66)
at org.jboss.wsf.stack.sunri.EndpointServlet.service(EndpointServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.acme.metroexceptiontest.MetroTestException: Test msg
at com.acme.metroexceptiontest.MetroTestServiceBean.helloWorld(MetroTestServiceBean.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:95)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
at org.jboss.wsf.container.jboss42.InvocationHandlerEJB3.invoke(InvocationHandlerEJB3.java:103)
at org.jboss.wsf.stack.sunri.InvokerEJB3.invoke(InvokerEJB3.java:98)
... 40 more
A JAX-WS client accessing this web service throws a SOAPFaultException with the WebServiceException as cause.
Below follows the simple web service I created to test this:
package com.acme.metroexceptiontest;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
@Stateless
@WebService(
name="MetroTestService",
targetNamespace = "http://com.acme.metroexceptiontest/",
serviceName = "MetroTestService")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public class MetroTestServiceBean {
@WebMethod
public String helloWorld() throws MetroTestException {
throw new MetroTestException("Test msg", new MetroTestFaultInfo("test detail"));
}
}
______________________________________________
package com.acme.metroexceptiontest;
import javax.xml.ws.WebFault;
@WebFault(name="MetroTestFault", targetNamespace="http://com.acme.metroexceptiontest/")
public class MetroTestException extends Exception {
private static final long serialVersionUID = 1L;
private MetroTestFaultInfo faultInfo;
public MetroTestException(String message, MetroTestFaultInfo faultInfo) {
super(message);
this.faultInfo = faultInfo;
}
public MetroTestFaultInfo getFaultInfo() {
return faultInfo;
}
}
______________________________________________
package com.acme.metroexceptiontest;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "MetroTestFaultInfo",
namespace="http://com.acme.metroexceptiontest/",
propOrder = { "detail" }
)
public class MetroTestFaultInfo {
protected String detail;
public MetroTestFaultInfo() {
}
public MetroTestFaultInfo(String detail) {
this.detail = detail;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
}
--
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, 6 months