felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Meschberger <fmesc...@adobe.com>
Subject Re: javax.mail and javax.activation issue in Felix 4 causes upload of video file to fail
Date Mon, 15 Oct 2012 09:27:20 GMT
Hi John,

Glad it works. Thanks for the feedback.

Regards
Felix

Am 13.10.2012 um 00:43 schrieb John King:

> Felix,
>
> Many thanks for this information - it did fix our problem.
>
> Ironically, I found a combined bundle built three years ago by Carl Hall
> for the Sakai Nakamura project, the project I just came off to work on
> my new project.
>
> John King
>
> On 10/10/12 11:30 PM, Felix Meschberger wrote:
>> Hi,
>>
>> Am 10.10.2012 um 21:37 schrieb John King:
>>
>>> Hi,
>>>
>>> Thanks for the recommendation.  Will try forthwith.
>>>
>>> Do you happen to know of any publicly accessible Maven or OSGI
>>> Repositories that might have that combined bundle already?
>> No, I don't know of such a bundle (we have a private one)
>>
>> Regards
>> Felix
>>
>>> John K
>>>
>>> On 10/9/12 11:54 PM, Felix Meschberger wrote:
>>>> Hi,
>>>>
>>>> You already removed the javax.mail and javax.activation from the system packages
in the felix config. This is fine.
>>>>
>>>> Other than that we experienced that the mail and activation libraries are
quite intertwined and our best experience with those was to actually have a single bundle
combining both bundles. This way, they have access to their internals, which they seem to
expect...
>>>>
>>>> But then, some bundle must provide the "application/atom+xml" data handler
and I am not sure whether this is part of either the javax.mail or javax.activation libraries
....
>>>>
>>>> Regards
>>>> Felix
>>>>
>>>> Am 10.10.2012 um 03:16 schrieb John King:
>>>>
>>>>> Folks,
>>>>>
>>>>> I have recently started working on the Opencast Matterhorn project which
>>>>> involves capturing, trans-coding and distribution of digital video files.
>>>>>
>>>>> One of the services we distribute to is YouTube.  As I understand it,
>>>>> the Matterhorn module that does this worked fine in Felix 3 but now
>>>>> fails in Felix 4.
>>>>>
>>>>> We are running the application with Java 1.6.
>>>>>
>>>>> The stack trace for this error:
>>>>> 17:08:44 WARN (YoutubeDistributionService:418) - Error distributing
>>>>> http://localhost:8080/files/mediapackage/a78f4054-9b79-4d87-b938-08547d495a9d/49a4dfe4-91bf-4450-b186-e0d8f24a53cd/test3.mp4
>>>>>
>>>>> javax.activation.UnsupportedDataTypeException: application/atom+xml
>>>>>     at javax.activation.DataHandler.writeTo(DataHandler.java:75)
>>>>>     at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:452)
>>>>>     at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:157)
>>>>>     at
>>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:58)
>>>>>     at
>>>>> com.google.gdata.wireformats.output.media.MediaMultipartGenerator.generate(MediaMultipartGenerator.java:37)
>>>>>     at com.google.gdata.client.Service.writeRequestData(Service.java:2071)
>>>>>     at
>>>>> com.google.gdata.client.media.MediaService.insert(MediaService.java:398)
>>>>>     at
>>>>> org.opencastproject.distribution.youtube.YoutubeDistributionService.distribute(YoutubeDistributionService.java:344)
>>>>>     .......................
>>>>>
>>>>> Obviously the google gdata code, specifically gdata-media, is in play
>>>>> here along with javax.mail and javax.activation.
>>>>>
>>>>> In the Felix 4 context we are using the following javax.mail and
>>>>> javax.activation bundles from Geronimo
>>>>> geronimo-activation_1.1_spec-1.1.jar and
>>>>> geronimo-javamail_1.4_mail-1.8.3.jar
>>>>>
>>>>> Googling for this error, I found the following thread that discusses
a
>>>>> problem that seems closely analogous to our problem,
>>>>> http://forum.springsource.org/archive/index.php/t-69180.html
>>>>>
>>>>> The container in that discussion is the Spring dm Server but the error
>>>>> and likely cause seem relevant.  See especially the posting on Mar 21st,
>>>>> 2009 by oleg.zhurakousky.
>>>>>
>>>>> Note particularly that the root cause is likely not an
>>>>> UnsupportedDataTypeException but a ClassNotFoundException for one of
the
>>>>> classes in com.sun.mail.handlers that becomes the
>>>>> UnsupportedDataTypeException. Quoting the thread " This results in the
>>>>> DataContentHandler for your MIME type being null which is the root of
>>>>> your exception. "
>>>>>
>>>>> I have tried explicitly importing the Geronimo javax.mail and
>>>>> javax.activation bundles using <Import-Bundle> and <Embed-Dependency>
as
>>>>> an analogous fix to that in the Spring thread but that doesn't fix our
>>>>> problem.  I've tried several other javax.mail and javax.activation
>>>>> bundles e.g. from Spring but with no luck.  Manipulating the
>>>>> ClassLoaders as discussed there doesn't seem possible as the error is
>>>>> being generated in the gdata code and, in any event, that approach seems
>>>>> evil.
>>>>>
>>>>> Any pointers or suggestions are most welcome.  For example, should I
>>>>> explicitly import com.sun.mail.handlers.* even though neither our code
>>>>> nor the gdata code calls them directly?  That also seems evil to me.
>>>>>
>>>>> I've looked at all the imports in the system/console/bundles UI for our
>>>>> bundle and the Geronimo bundles and everything appears consistent namely
>>>>> that our YouTube bundle is importing the javax.mail packages from the
>>>>> Geronimo bundle.  Also the Geronimo mail bundle is importing
>>>>> javax.activation bundle from the Geronimo mail bundle.
>>>>>
>>>>> Relevant sections of the Felix 4 config for our app are:
>>>>>
>>>>> # Packages 'javax.xml.stream, javax.xml.stream.events,
>>>>> javax.xml.stream.util' removed --> provided by ServiceMix STAX bundle
>>>>> # Packages 'javax.mail, javax.mail.internet' removed --> provided
by
>>>>> Geronimo JavaMail bundle
>>>>> org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0,org.osgi.framework.hooks.bundle;version=1.0.0,org.osgi.framework.hooks.resolver;version=1.0.0,org.osgi.framework.hooks.service;version=1.1.0,org.osgi.framework.hooks.weaving;version=1.0.0,org.osgi.framework.launch;version=1.0.0,org.osgi.framework.startlevel;version=1.0.0,org.osgi.framework.wiring;version=1.0.0,org.osgi.service.packageadmin;version=1.2.0,org.osgi.service.startlevel;version=1.1.0,org.osgi.service.url;version=1.0.0,org.osgi.util.tracker;version=1.5.0,javax.accessibility,
>>>>> javax.activity, javax.annotation, javax.annotation.processing,
>>>>> javax.crypto, javax.crypto.interfaces, javax.crypto.spec, javax.imageio,
>>>>> javax.imageio.event, javax.imageio.metadata, javax.imageio.plugins.bmp,
>>>>> javax.imageio.plugins.jpeg, javax.imageio.spi, javax.imageio.stream,
>>>>> javax.jws, javax.jws.soap, javax.lang.model, javax.lang.model.element,
>>>>> javax.lang.model.type, javax.lang.model.util, javax.management,
>>>>> javax.management.loading, javax.management.modelmbean,
>>>>> javax.management.monitor, javax.management.openmbean,
>>>>> javax.management.relation, javax.management.remote,
>>>>> javax.management.remote.rmi, javax.management.timer, javax.naming,
>>>>> javax.naming.directory, javax.naming.event, javax.naming.ldap,
>>>>> javax.naming.spi, javax.net, javax.net.ssl, javax.print,
>>>>> javax.print.attribute, javax.print.attribute.standard,
>>>>> javax.print.event, javax.rmi, javax.rmi.CORBA, javax.rmi.ssl,
>>>>> javax.script, javax.security.auth, javax.security.auth.callback,
>>>>> javax.security.auth.kerberos, javax.security.auth.login,
>>>>> javax.security.auth.spi, javax.security.auth.x500, javax.security.cert,
>>>>> javax.security.sasl, javax.sound.midi, javax.sound.midi.spi,
>>>>> javax.sound.sampled, javax.sound.sampled.spi, javax.sql,
>>>>> javax.sql.rowset, javax.sql.rowset.serial, javax.sql.rowset.spi,
>>>>> javax.swing, javax.swing.border, javax.swing.colorchooser,
>>>>> javax.swing.event, javax.swing.filechooser, javax.swing.plaf,
>>>>> javax.swing.plaf.basic, javax.swing.plaf.metal, javax.swing.plaf.multi,
>>>>> javax.swing.plaf.synth, javax.swing.table, javax.swing.text,
>>>>> javax.swing.text.html, javax.swing.text.html.parser,
>>>>> javax.swing.text.rtf, javax.swing.tree, javax.swing.undo, javax.tools,
>>>>> javax.transaction, javax.transaction.xa, javax.xml, javax.xml.bind,
>>>>> javax.xml.bind.annotation, javax.xml.bind.annotation.adapters,
>>>>> javax.xml.bind.attachment, javax.xml.bind.helpers, javax.xml.bind.util,
>>>>> javax.xml.crypto, javax.xml.crypto.dom, javax.xml.crypto.dsig,
>>>>> javax.xml.crypto.dsig.dom, javax.xml.crypto.dsig.keyinfo,
>>>>> javax.xml.crypto.dsig.spec, javax.xml.datatype, javax.xml.namespace,
>>>>> javax.xml.soap, javax.xml.transform, javax.xml.transform.dom,
>>>>> javax.xml.transform.sax, javax.xml.transform.stax,
>>>>> javax.xml.transform.stream, javax.xml.validation, javax.xml.ws,
>>>>> javax.xml.ws.handler, javax.xml.ws.handler.soap, javax.xml.ws.http,
>>>>> javax.xml.ws.soap, javax.xml.ws.spi, javax.xml.ws.wsaddressing1,
>>>>> javax.xml.xpath, org.ietf.jgss, org.omg.CORBA, org.omg.CORBA_2_3,
>>>>> org.omg.CORBA_2_3.portable, org.omg.CORBA.DynAnyPackage,
>>>>> org.omg.CORBA.ORBPackage, org.omg.CORBA.portable,
>>>>> org.omg.CORBA.TypeCodePackage, org.omg.CosNaming,
>>>>> org.omg.CosNaming.NamingContextExtPackage,
>>>>> org.omg.CosNaming.NamingContextPackage, org.omg.Dynamic,
>>>>> org.omg.DynamicAny, org.omg.DynamicAny.DynAnyFactoryPackage,
>>>>> org.omg.DynamicAny.DynAnyPackage, org.omg.IOP,
>>>>> org.omg.IOP.CodecFactoryPackage, org.omg.IOP.CodecPackage,
>>>>> org.omg.Messaging, org.omg.PortableInterceptor,
>>>>> org.omg.PortableInterceptor.ORBInitInfoPackage, org.omg.PortableServer,
>>>>> org.omg.PortableServer.CurrentPackage,
>>>>> org.omg.PortableServer.POAManagerPackage,
>>>>> org.omg.PortableServer.POAPackage, org.omg.PortableServer.portable,
>>>>> org.omg.PortableServer.ServantLocatorPackage, org.omg.SendingContext,
>>>>> org.omg.stub.java.rmi
>>>>>
>>>>> # specs
>>>>> felix.auto.start.2= \
>>>>>  .......
>>>>>  file:${felix.home}/lib/ext/geronimo-activation_1.1_spec-1.1.jar \
>>>>>
>>>>> # libraries
>>>>> felix.auto.start.3= \
>>>>>  ......
>>>>>  file:${felix.home}/lib/ext/geronimo-javamail_1.4_mail-1.8.3.jar \
>>>>>  file:${felix.home}/lib/ext/jolokia-osgi-1.0.4.jar
>>>>>
>>>>>
>>>>> Relevant sections of the pom.xml for our YouTubeDistribution module
>>>>> looks like:
>>>>>     <!-- Youtube delivery dependencies -->
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-client</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-core</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-media</artifactId>
>>>>>       <version>1.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-youtube</artifactId>
>>>>>       <version>2.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>>
>>>>>     <dependency>
>>>>>       <groupId>gdata</groupId>
>>>>>       <artifactId>gdata-youtube-meta</artifactId>
>>>>>       <version>2.0</version>
>>>>>       <classifier>1.45.0</classifier>
>>>>>     </dependency>
>>>>> ..........................
>>>>>       <plugin>
>>>>>         <groupId>org.apache.felix</groupId>
>>>>>         <artifactId>maven-bundle-plugin</artifactId>
>>>>>         <version>2.0.1</version>
>>>>>         <extensions>true</extensions>
>>>>>         <configuration>
>>>>>           <instructions>
>>>>>             <Bundle-SymbolicName> ${project.artifactId}
>>>>> </Bundle-SymbolicName>
>>>>>             <Private-Package>
>>>>>               com.google.*;-split-package:=merge-first,
>>>>>               org.jdom.*,
>>>>>               flexjson,
>>>>>             </Private-Package>
>>>>>             <Import-Package>
>>>>>               *;resolution:=optional
>>>>>             </Import-Package>
>>>>>             <Export-Package>
>>>>> org.opencastproject.deliver.youtube.*;version=${project.version},
>>>>> org.opencastproject.distribution.youtube.*;version=${project.version}
>>>>>             </Export-Package>
>>>>>             <Embed-Dependency>
>>>>>               flexjson;inline=true,
>>>>>               gdata-client;inline=true,
>>>>>               gdata-core;inline=true,
>>>>>               gdata-media;inline=true,
>>>>>               gdata-youtube;inline=true,
>>>>>               google-collections;inline=true,
>>>>>             </Embed-Dependency>
>>>>>             <Service-Component>
>>>>>               OSGI-INF/distribution-service-youtube.xml
>>>>>             </Service-Component>
>>>>>           </instructions>
>>>>>         </configuration>
>>>>>       </plugin>
>>>>>
>>>>>
>>>>> --
>>>>> John King
>>>>> Applications Programmer
>>>>> Learning Systems Group
>>>>> Educational Technology Services
>>>>> 9 Dwinelle Hall - Mail
>>>>> 117 Dwinelle Hall - Office
>>>>> University of California
>>>>> Berkeley, CA 94720-2535
>>>>> Phone: 510-529-5074
>>>>> Email: johnk@media.berkeley.edu
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>
>>> --
>>> John King
>>> Applications Programmer
>>> Learning Systems Group
>>> Educational Technology Services
>>> 9 Dwinelle Hall - Mail
>>> 117 Dwinelle Hall - Office
>>> University of California
>>> Berkeley, CA 94720-2535
>>> Phone: 510-529-5074
>>> Email: johnk@media.berkeley.edu
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
> --
> John King
> Applications Programmer
> Learning Systems Group
> Educational Technology Services
> 9 Dwinelle Hall - Mail
> 117 Dwinelle Hall - Office
> University of California
> Berkeley, CA 94720-2535
> Phone: 510-529-5074
> Email: johnk@media.berkeley.edu
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message