I really need urgent help please. I have implemented a web service using XOM to transfer large files from the client to the web service. In dev this works fine, however in production I see no errors in the log file, yet the inputstream yields 0 bytes when reading the file.
I am using jbossws-3.0.1-native-2.0.4.GA (build=200803312044) on JBoss 4.2.3 GA. Here are the log files: | 2009-10-17 00:12:44,525 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] doPost: /LicensingWSBeanService/WSServerLargeFileTransferBean | 2009-10-17 00:12:44,525 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] handleRequest: jboss.ws:context=LicensingWSBeanService,endpoint=WSServerLargeFileTransferBean | 2009-10-17 00:12:44,525 DEBUG [org.jboss.ws.core.soap.MessageContextAssociation] pushMessageContext: org.jboss.ws.core.jaxws.handler.soapmessagecontextja...@4964f4eb (Thread http-0.0.0.0-8080-1) | 2009-10-17 00:12:44,525 DEBUG [org.jboss.wsf.stack.jbws.RequestHandlerImpl] BEGIN handleRequest: jboss.ws:context=LicensingWSBeanService,endpoint=WSServerLargeFileTransferBean | 2009-10-17 00:12:44,525 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=multipart/related; type="application/xop+xml"; | boundary="uuid:604b4c1b-9578-4a57-897e-fa68d07da32e"; | start-info="text/xml"] | 2009-10-17 00:12:44,541 DEBUG [org.jboss.ws.core.soap.attachment.SwapableMemoryDataSource] Using memory buffer, size = 325 | 2009-10-17 00:12:44,556 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.heirarchicalloaderreposito...@2f57d162, cl=org.jboss.mx.loading.heirarchicalloaderrepository3$cacheclassloa...@7b04eff0{ url=null ,addedOrder=0} | 2009-10-17 00:12:44,583 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: POST | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: PRE | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] addHandler: | HandlerMetaDataJAXWS: | type=PRE | name=Recording Handler | class=class org.jboss.wsf.framework.invocation.RecordingServerHandler | params=[] | protocols=##SOAP11_HTTP | services=null | ports=null | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: ENDPOINT | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] initHandlerChain: POST | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=POST,info=[service={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanService,port={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.soap.SOAPMessageDispatcher] getDispatchDestination: {http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS] unbindRequestMessage: {http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.EndpointInvocation] setRequestParamValue: [name={http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates,value=org.jboss.ws.core.soap.SOAPBodyElementDoc] | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: ENDPOINT | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=ENDPOINT,info=[service={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanService,port={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS] callRequestHandlerChain: PRE | 2009-10-17 00:12:44,584 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerResolverImpl] getHandlerChain: [type=PRE,info=[service={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanService,port={http://webservice.licensing.sarad.co.za/}WSServerLargeFileTransferBeanPort,binding=http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true]] | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Create a handler executor: [] | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.EndpointInvocation] getRequestPayload | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.EndpointInvocation] getRequestParamValue: {http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] ----------------------------------- | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] Transitioning from XML_VALID to OBJECT_VALID | 2009-10-17 00:12:44,585 DEBUG [org.jboss.ws.core.soap.XMLContent] getObjectValue [xmlType={http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates,javaType=class za.co.sarad.licensing.webservice.jaxws.UploadApplicationUpdates] | 2009-10-17 00:12:44,587 DEBUG [org.jboss.ws.core.jaxws.JAXBDeserializer] deserialize: [xmlName={http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates,xmlType={http://webservice.licensing.sarad.co.za/}uploadApplicationUpdates] | 2009-10-17 00:12:44,588 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.heirarchicalloaderreposito...@2f57d162, cl=org.jboss.mx.loading.heirarchicalloaderrepository3$cacheclassloa...@3b4768cc{ url=null ,addedOrder=0} | 2009-10-17 00:12:44,589 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.heirarchicalloaderreposito...@2f57d162, cl=org.jboss.mx.loading.heirarchicalloaderrepository3$cacheclassloa...@4d31477b{ url=null ,addedOrder=0} | 2009-10-17 00:12:44,617 DEBUG [org.jboss.ws.core.jaxws.JAXBDeserializer] deserialized: za.co.sarad.licensing.webservice.jaxws.UploadApplicationUpdates | 2009-10-17 00:12:44,617 DEBUG [org.jboss.ws.core.soap.XMLContent] objectValue: za.co.sarad.licensing.webservice.jaxws.UploadApplicationUpdates | 2009-10-17 00:12:44,617 DEBUG [org.jboss.ws.core.soap.SOAPContentElement] ----------------------------------- | 2009-10-17 00:12:44,617 DEBUG [org.jboss.ws.core.EndpointInvocation] transformPayloadValue: org.jboss.ws.core.soap.SOAPBodyElementDoc -> za.co.sarad.licensing.webservice.jaxws.UploadApplicationUpdates | 2009-10-17 00:12:44,619 DEBUG [org.jboss.ws.core.jaxrpc.ParameterWrapping] unwrapRequestParameters: za.co.sarad.licensing.webservice.jaxws.UploadApplicationUpdates | 2009-10-17 00:12:44,619 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] provide SPI 'class org.jboss.wsf.spi.invocation.WebServiceContextFactory' | 2009-10-17 00:12:44,620 DEBUG [org.jboss.wsf.framework.DefaultSPIProvider] class org.jboss.wsf.spi.invocation.WebServiceContextFactory Implementation: org.jboss.wsf.container.jboss42.webservicecontextfactoryi...@315a5aff | 2009-10-17 00:12:44,624 INFO [STDOUT] ..........1 | 2009-10-17 00:12:44,624 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.heirarchicalloaderreposito...@2f57d162, cl=org.jboss.mx.loading.heirarchicalloaderrepository3$cacheclassloa...@5c4e0c39{ url=null ,addedOrder=0} | 2009-10-17 00:12:44,625 INFO [STDOUT] ..........2 | 2009-10-17 00:12:44,625 INFO [STDOUT] .........3 | 2009-10-17 00:12:44,625 INFO [STDOUT] tmpfile = /tmp/ws_dump1540207851695323714dump | 2009-10-17 00:12:54,627 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.heirarchicalloaderreposito...@2f57d162, cl=org.jboss.mx.loading.heirarchicalloaderrepository3$cacheclassloa...@6808aa2d{ url=null ,addedOrder=0} | 2009-10-17 00:12:54,628 INFO [STDOUT] vInputStream.available() = >0< | | | Here is the WS code: | | | | @WebService | | @BindingType(value = SOAPBinding.SOAP11HTTP_MTOM_BINDING) | | @MTOM(enabled = true) | | @Stateless | | @WebContext(contextRoot = "/LicensingWSBeanService") | | public class WSServerLargeFileTransferBean { | | | | @WebMethod | | public boolean uploadApplicationUpdates(String pKey, int pClientBuildNumber, @XmlMimeType("application/octet-stream") DataHandler pDataHandler) { | | try { | | Security.validate(pKey); | | | | System.out.println("..........1"); | | | | Object vDataContent = pDataHandler.getContent(); | | if (!(vDataContent instanceof InputStream)) | | throw new RuntimeFailureException("DataHandler is not an InputStream!"); | | | | System.out.println("..........2"); | | | | InputStream vInputStream = (InputStream)vDataContent; | | BufferedInputStream vBIS = new BufferedInputStream(vInputStream); | | | | System.out.println(".........3"); | | | | File vTmpFile = File.createTempFile("ws_dump", "dump"); | | | | System.out.println("tmpfile = "+vTmpFile.getCanonicalPath()); | | try { | | byte[] vBuf = new byte[10240]; | | int vLen; | | FileOutputStream vFOS = new FileOutputStream(vTmpFile); | | | | try { | | System.out.println("vInputStream.available() = >" + vInputStream.available() + "<"); | | while ((vLen = vBIS.read(vBuf, 0, vBuf.length)) != -1) { | | System.out.println("vLen = >" + vLen + "<"); | | vFOS.write(vBuf, 0, vLen); | | } | | ... | | | | and the client code: | | | | boolean vRes = vWSServerLargeFileTransfer.uploadApplicationUpdates(Security.generateKey(), vClientBuildNumber, new DataHandler(vTestFile, "application/octet-stream")); | | | | Any ideas? View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4260849#4260849 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4260849 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user