Forum Stats

  • 3,751,609 Users
  • 2,250,379 Discussions
  • 7,867,482 Comments

Discussions

Problems using JavaMail and activation with Java 1.6

843830
843830 Member Posts: 47,913 Green Ribbon
edited May 16, 2008 2:11PM in JavaMail
Hi,

I have developed an application with a SOAP architecture using Axis. Everything worked fine until I upgrade the JRE version from 1.5 to 1.6. Since then a "javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/related; type="text/xml" " exception is thrown every time I try to connect to the webservices.

Debugging the code I've found that the problem is a null value in the "dch" attribute of the ObjectDataContentHandler object returned by the getInputStream method in the DataHandler class.

When I launch the application using JRE 1.5 this attribute value is "text_plain" and everthing woks ok but when I launch it with JRE 1.6 the attribute has a wonderful "null" value...

Anybody knows what could be the reason for that "null" value?

I've looking for this problem in diferent forums and I believe that could be some kind of incompatibility between the activation version provided with the JRE 1.6 and the JavaMail 1.4 version but I'm not sure.

Thanks in advance!

Comments

  • I've started looking into complaints of JavaMail not working with
    JDK 1.6 and I haven't yet been able to reproduce any problems
    in this area. Can you tell me more about your environment?
    Are you running in an application server or web server, or are you
    just running a standalone application? If you remove activation.jar
    from your CLASSPATH on JDK 1.6, does it help?
  • 843834
    843834 Member Posts: 49,972
    edited Oct 19, 2007 4:08PM
    My application also stopped working and sadly is a production application (is in a production environment and production depends heavily on it since it contains Standard Operation Procedures documents).

    I've tried so far uninstalling jre 1.6 from server, opening the jnlp with jre 1.5.13 and nothing yet. the curious thing is that the jre 1.6 update took place some time ago and today I'm getting the error. Not sure i the server went down recently which might explain some of it.

    Here's my error:
    java.lang.reflect.InvocationTargetException
            at sun.reflect.GeneratedConstructorAccessor4.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)  
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at org.apache.axis.Message.setup(Message.java:352)
            at org.apache.axis.Message.<init>(Message.java:235)
            at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:779)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at com.bluecubs.xinco.client.XincoExplorer.doDataWizard(XincoExplorer.java:2788)
            at com.bluecubs.xinco.client.XincoExplorer$8.mousePressed(XincoExplorer.java:1437)
            at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
            at java.awt.Component.processMouseEvent(Component.java:6035)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
            at java.awt.Component.processEvent(Component.java:5803)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4410)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3983)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
            at java.awt.Container.dispatchEventImpl(Container.java:2102)
            at java.awt.Window.dispatchEventImpl(Window.java:2429)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Caused by: Error reading data stream:  Error in MIME data stream, start boundary not found, expected:  ------=_Part_5_13931643.1192823865125
    
            at org.apache.axis.attachments.MultiPartRelatedInputStream.<init>(MultiPartRelatedInputStream.java:339)
            at org.apache.axis.attachments.AttachmentsImpl.<init>(AttachmentsImpl.java:119)
            ... 39 more
    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
     faultSubcode: 
     faultString: java.lang.RuntimeException
     faultActor: 
     faultNode: 
     faultDetail: 
            {http://xml.apache.org/axis/}stackTrace:java.lang.RuntimeException
            at org.apache.axis.Message.setup(Message.java:361)
            at org.apache.axis.Message.<init>(Message.java:235)
            at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:779)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at com.bluecubs.xinco.client.XincoExplorer.doDataWizard(XincoExplorer.java:2788)
            at com.bluecubs.xinco.client.XincoExplorer$8.mousePressed(XincoExplorer.java:1437)
            at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
            at java.awt.Component.processMouseEvent(Component.java:6035)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
            at java.awt.Component.processEvent(Component.java:5803)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4410)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3983)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
            at java.awt.Container.dispatchEventImpl(Container.java:2102)
            at java.awt.Window.dispatchEventImpl(Window.java:2429)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    
            {http://xml.apache.org/axis/}hostname:PRAII1371900
    
    java.lang.RuntimeException
            at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
            at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
            at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
            at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
            at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
            at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
            at org.apache.axis.client.Call.invoke(Call.java:2767)
            at org.apache.axis.client.Call.invoke(Call.java:2443)
            at org.apache.axis.client.Call.invoke(Call.java:2366)
            at org.apache.axis.client.Call.invoke(Call.java:1812)
            at com.bluecubs.xinco.client.XincoExplorer.doDataWizard(XincoExplorer.java:2788)
            at com.bluecubs.xinco.client.XincoExplorer$8.mousePressed(XincoExplorer.java:1437)
            at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
            at java.awt.Component.processMouseEvent(Component.java:6035)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
            at java.awt.Component.processEvent(Component.java:5803)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4410)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3983)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
            at java.awt.Container.dispatchEventImpl(Container.java:2102)
            at java.awt.Window.dispatchEventImpl(Window.java:2429)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    Caused by: java.lang.RuntimeException
            at org.apache.axis.Message.setup(Message.java:361)
            at org.apache.axis.Message.<init>(Message.java:235)
            at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:779)
            at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
            ... 32 more
    And the related code:
    Message m = null;
                                MessageContext mc = null;
                                AttachmentPart ap = null;
                                Call call = (Call)xincoClientSession.xinco_service.createCall();
                                call.setTargetEndpointAddress(new URL(xincoClientSession.service_endpoint));
                                call.setOperationName(new QName("urn:Xinco", "downloadXincoCoreData"));
                                Object[] objp = new Object[2];
                                objp[0] = (XincoCoreData)newnode.getUserObject();
                                objp[1] = xincoClientSession.user;
                                //tell server to send file as attachment
                                //(keep backward compatibility to earlier versions)
                                ap = new AttachmentPart();
                                ap.setContent(new String("SAAJ"), "text/string");
                                call.addAttachmentPart(ap);
                                //invoke actual call
                                byte_array = (byte[])call.invoke(objp);
                                //get file from SOAP message or byte array
                                mc = call.getMessageContext();
                                m = mc.getResponseMessage();
                                if (m.getAttachments().hasNext()) {
                                    ap = (AttachmentPart)m.getAttachments().next();
                                    in = (InputStream)ap.getContent();
                                } else {
                                    in = new ByteArrayInputStream(byte_array);
                                }
    The stack trace point the error to the line:

    *
    byte_array = (byte[])call.invoke(objp);
    *

    Edited by: javydreamercsw on Oct 19, 2007 1:08 PM
  • I'm confused as to why you think this has anything
    to do with JavaMail. The problem seems to
    be in Apache Axis.
  • 843834
    843834 Member Posts: 49,972
    That's the original post title not mine. I don't think it's java mail related. I agree with you about Apache Axis - JRE 1.6 combination.
  • 843834
    843834 Member Posts: 49,972
    Same problem with java 1.6.
    My application is an simple Mailer all works fine since 1.6

    I am afraid for every update from sun because everytime time they make an update i have work on my application. God i m so tired.

    Please wait before you make an update!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Can you tell me more about your application so I can
    figure out why it doesn't work on 1.6? Is it just a
    standalone program invoked using the "java" command?
  • 843834
    843834 Member Posts: 49,972
    My application is a DMS (Document Management System) using axis to manage files (remotely). The program is open source (check xinco.org) so you can see the source. The application works perfectly unless you attempt a web service call involving sending or retrieving files to/from the server. Once you check the code you'll be able to spot the issue, hopefully.
  • 843834
    843834 Member Posts: 49,972
    Looks like I found out the solution. It's Windows update related issue. Check Axis JIRA (https://issues.apache.org/jira/browse/AXIS-2703) for my issue and solution details. There still more narrowing/investigation to make but this is the only solution so far that I know of.
  • 843834
    843834 Member Posts: 49,972
    Guys have you ever gotten resolution on this one? I'm getting a similiar problem using jax-ws with jre 1.6. (not using axis) Occurs in both a server (glassfish) and stand-alone app. Changing my attachment type to something other than text/* gets rid of the javax.activation exception.
  • Can you tell me more about your configuration?

    In your standalone app, what exactly is in your CLASSPATH?

    In your app running in GlassFish, what's in your war file or ear file?

    Exactly what are you doing and what exception are you getting?

    When using JDK 1.6, you shouldn't need activation.jar at all. If you're using it,
    try without it.
This discussion has been closed.