geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick McGuire <rick...@gmail.com>
Subject Re: geronimo mail 1.1.1
Date Thu, 25 Jan 2007 19:31:58 GMT
Michael C. wrote:
> Thank  you for your replies, they are greatly appreciated.  I would like to
> step back for a moment and be sure i understand the big picture.
>
> When our team first changed over from WSAD to MyEclipse and decided to use
> Geronimo 1.0 as our local app server, we ran into this same email problem. 
> I found that there were some email bugs in the Geronimo 1.0 version, and
> that you had to use the geronimo-mail.jar and the
> geronimo-javamail-transport.jar files, and configure geronimo thru a GBEAN
> to use these jars to fix the email issue.  Maybe already, my understanding
> was incorrect but this did fix the issue.
>
> We just upgraded to geronimo 1.1.1 and re-introduced the same email issue. 
> I have read where this email issue was fixed with 1.1.1.  But without any
> changes, we still throw errors.  When i deployed the new email plan(in my
> earlier threads), we still throw errors.  So i have a couple questions...
>
> Since our application code uses the javax.mail.* packages, it would be best
> to configure geronimo to use these packages for email.  To be honest, if
> this is fixed with 1.1.1, then why are there still geronimo version email
> packages in the new install?
>
> Our intent would certainly be to use the mail packages from Sun since this
> is the .jar file used in our app and our WebSphere production server.  Is it
> an option to configure Geronimo to use this mail.jar file and if so, how do
> we go about doing it?  
>   
Geronimo comes with its own implementation of the javax.mail.* apis and 
it's own transport implementation.  The javax.mail APIs are used by 
other components (e.g., Axis) so they are pretty fundamental to Geronimo 
operations and show up in a lot of dependencies. 

Unfortunately, part of javamail processing is locating and loading all 
transport implementations contained in jars on the classpath.   If both 
the sun jar and the geronimo jars are present, then both sets of 
transports get loaded and depending on the search order, the default 
transports can end up being the Sun versions.  This appears to be what's 
happening in this case. 

My recommendation is to just use the geronimo jar files, and remove the 
Sun versions.  The setup is very similar to the previous release.  You 
only actually need to configure a GBean if you're using a mail 
resource.  If you're just directly using the mail apis, you only need to 
add the jar files to your dependency list.

Rick


> Rick McGuire wrote:
>   
>> The message about unable to relay for that address is sent back from the 
>> SMTP server.  I'm not sure what it didn't like, but it appears it 
>> couldn't figure out where to relay the message. 
>>
>> The part I find interesting is the stack trace.  You're using the Sun 
>> javamail transport implementation, not the Geronimo one.  The API code 
>> (javax.mail.* appears to be the Geronimo version).  Is that what you 
>> intended?  I know we've never tested that combo, so it's unclear how 
>> well that would work.  You might want to check around for a spurious 
>> mail.jar file.  Having that in your classpath can potentially cause the 
>> other transports to get registered and override the Geronimo ones.
>>
>> Rick
>>
>>
>> Michael C. wrote:
>>     
>>> I tried your approach and that particular error went away but now i
>>> believe i
>>> am back to the root cause of all this effort; our email logic is throwing
>>> an
>>> error on this line in our application:
>>>
>>> javax.mail.Transport.send(message);
>>>
>>> Message=Could not send eMail to address someaddress@somewhere.com <;>
>>> Thread=Thread[AmicaWebApp--TP-Processor3,5,main] <;> Original
>>> Exception=javax.mail.SendFailedException: Invalid Addresses
>>> (javax.mail.SendFailedException: 550 5.7.1 Unable to relay for
>>> someaddress@somewhere.com
>>>
>>> ):Invalid Addresses (javax.mail.SendFailedException: 550 5.7.1 Unable to
>>> relay for someaddress@somewhere.com
>>>
>>> Thu Jan 25 09:28:14 EST 2007 <;>  Message=Could not send eMail to address
>>> someaddress@somewhere.com<;>
>>> Thread=Thread[AmicaWebApp--TP-Processor3,5,main] <;> Original
>>> Exception=javax.mail.SendFailedException: Invalid Addresses
>>> (javax.mail.SendFailedException: 550 5.7.1 Unable to relay for
>>> someaddress@somewhere.com
>>>
>>> ):Invalid Addresses (javax.mail.SendFailedException: 550 5.7.1 Unable to
>>> relay for someaddress@somewhere.com
>>>
>>> ) :Could not send eMail to address someaddress@somewhere.com
>>> javax.mail.SendFailedException: Invalid Addresses
>>> (javax.mail.SendFailedException: 550 5.7.1 Unable to relay for
>>> someaddress@somewhere.com
>>>
>>> )
>>>       at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:804)
>>>       at
>>> com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:320)
>>>       at javax.mail.Transport.send(Transport.java:93)
>>>       at javax.mail.Transport.send(Transport.java:46)
>>>
>>> Caused by: javax.mail.SendFailedException: 550 5.7.1 Unable to relay for
>>> someaddress@somewhere.com
>>>       at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:672)
>>>
>>> I supplemented the real address but we are using a good address.  This
>>> error
>>> only occurs in our local testing using Geronimo but once we move our code
>>> to
>>> the next tier where WebSphere is running, everything works fine.  There
>>> is a
>>> configuration issue that i do not understand.
>>>
>>>
>>> djencks wrote:
>>>   
>>>       
>>>> It looks to me as if the error message is fairly clear about the  
>>>> first think that is wrong with your xml....
>>>>
>>>> <resource-ref>
>>>>             <property>MailSession</property>
>>>>             <res-type>javax.mail.Session</res-type>
>>>>             <res-auth>Container</res-auth>
>>>>             <res-sharing-scope>Shareable</res-sharing-scope>
>>>>             <pattern>
>>>>                  <name>mail/MailSession</name>
>>>>             </pattern>
>>>>         </resource-ref>
>>>>
>>>>     
>>>>         
>>>>> Caused by: org.apache.xmlbeans.XmlException: Invalid deployment  
>>>>> descriptor:
>>>>> [error: cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'property@http://geronimo.apache.org/xml/ns/naming-1.1' here in  
>>>>> element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1,
>>>>>       
>>>>>           
>>>> I think this will work:
>>>> <resource-ref>
>>>>             <ref-name>MailSession</ref-name>
>>>>             <resource-link>mail/MailSession</resource-link>
>>>>         </resource-ref>
>>>>
>>>> and I also think that if you name the mail session the same in your  
>>>> app and your mail-server plan you won't need any entry in the  
>>>> geronimo-web.xml at all.
>>>>
>>>> thanks
>>>> david jencks
>>>>
>>>>
>>>> On Jan 24, 2007, at 7:57 AM, Michael C. wrote:
>>>>
>>>>     
>>>>         
>>>>> Our team has just upgraded from geronimo 1.0 to 1.1.1
>>>>> Previously, to surpress javamail errors, we had to create a gbean  
>>>>> and deploy
>>>>> it, then add a resource-ref entry to our geronimo-web.xml file and  
>>>>> this
>>>>> worked.
>>>>>
>>>>> Since our upgrade, we are back to our original javamail errors.  I  
>>>>> found
>>>>> entries on other postings here and successfully deployed the  
>>>>> following plan:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>
>>>>> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
>>>>>  <dep:environment
>>>>> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
>>>>>    <dep:moduleId>
>>>>>      <dep:groupId>geronimo</dep:groupId>
>>>>>      <dep:artifactId>javamail-server</dep:artifactId>
>>>>>    </dep:moduleId>
>>>>>
>>>>>    <dep:dependencies>
>>>>>      <dep:dependency>
>>>>>        <dep:groupId>geronimo</dep:groupId>
>>>>>        <dep:artifactId>geronimo-mail</dep:artifactId>
>>>>>        <dep:version>1.1.1</dep:version>
>>>>>        <dep:type>jar</dep:type>
>>>>>        <dep:import>classes</dep:import>
>>>>>      </dep:dependency>
>>>>>      <dep:dependency>
>>>>>        <dep:groupId>geronimo</dep:groupId>
>>>>>        <dep:artifactId>geronimo-javamail-transport</dep:artifactId>
>>>>>        <dep:version>1.1.1</dep:version>
>>>>>        <dep:type>jar</dep:type>
>>>>>        <dep:import>classes</dep:import>
>>>>>      </dep:dependency>
>>>>>      <dep:dependency>
>>>>>        <dep:groupId>geronimo</dep:groupId>
>>>>>        <dep:artifactId>rmi-naming</dep:artifactId>
>>>>>        <dep:type>car</dep:type>
>>>>>      </dep:dependency>
>>>>>    </dep:dependencies>
>>>>>    <dep:hidden-classes/>
>>>>>    <dep:non-overridable-classes/>
>>>>>  </dep:environment>
>>>>>
>>>>>  <gbean name="SMTPTransport"
>>>>> class="org.apache.geronimo.mail.SMTPTransportGBean">
>>>>>    <attribute name="host">our smtp remote host</attribute>
>>>>>    <attribute name="port">25</attribute>
>>>>>  </gbean>
>>>>>  <gbean name="mail/MailSession"  
>>>>> class="org.apache.geronimo.mail.MailGBean">
>>>>>    <attribute name="transportProtocol">smtp</attribute>
>>>>>    <attribute name="debug">true</attribute>
>>>>>    <reference name="Protocols">
>>>>>       <name>SMTPTransport</name>
>>>>>    </reference>
>>>>>  </gbean>
>>>>> </module>
>>>>>
>>>>> at this point, we need an entry in our geronimo-web.xml and so i  
>>>>> have added
>>>>> this:
>>>>>
>>>>> <resource-ref>
>>>>>            <property>MailSession</property>
>>>>>            <res-type>javax.mail.Session</res-type>
>>>>>            <res-auth>Container</res-auth>
>>>>>            <res-sharing-scope>Shareable</res-sharing-scope>
>>>>>            <pattern>
>>>>>                 <name>mail/MailSession</name>
>>>>>            </pattern>
>>>>>        </resource-ref>
>>>>>
>>>>> This entry throws the following error:
>>>>>
>>>>> 10:16:48,922 ERROR [Hot Deployer] Unable to deploy: xml problem for 

>>>>> web app
>>>>> .
>>>>>
>>>>> org.apache.geronimo.common.DeploymentException: xml problem for web 

>>>>> app .
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.getTomcatWeb

>>>>> App(TomcatModuleBuilder.java:234)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.createModule

>>>>> (TomcatModuleBuilder.java:158)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.web.deployment.AbstractWebModuleBuilder.createModu

>>>>> le(AbstractWebModuleBuilder.java:121)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.web.deployment.AbstractWebModuleBuilder$ 
>>>>> $FastClassByCGLIB$$459e0cc.invoke(<generated>)
>>>>>
>>>>>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
>>>>> (FastMethodInvoker.java:38)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
>>>>> (GBeanOperation.java:122)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
>>>>> (GBeanInstance.java:817)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:

>>>>> 57)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
>>>>> (RawOperationInvoker.java:35)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
>>>>> (ProxyMethodInterceptor.java:96)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$ 
>>>>> $1f792348.createModule(<generated>)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.createModul

>>>>> e(SwitchingModuleBuilder.java:94)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder$ 
>>>>> $FastClassByCGLIB$$d0c31844.invoke(<generated>)
>>>>>
>>>>>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
>>>>> (FastMethodInvoker.java:38)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
>>>>> (GBeanOperation.java:122)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
>>>>> (GBeanInstance.java:817)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:

>>>>> 57)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
>>>>> (RawOperationInvoker.java:35)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
>>>>> (ProxyMethodInterceptor.java:96)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$ 
>>>>> $1f792348.createModule(<generated>)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getDeploymentPlan

>>>>> (EARConfigBuilder.java:275)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.j2ee.deployment.EARConfigBuilder$ 
>>>>> $FastClassByCGLIB$$38e56ec6.invoke(<generated>)
>>>>>
>>>>>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
>>>>> (FastMethodInvoker.java:38)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
>>>>> (GBeanOperation.java:122)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
>>>>> (GBeanInstance.java:817)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:

>>>>> 57)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke 
>>>>> (RawOperationInvoker.java:35)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept 
>>>>> (ProxyMethodInterceptor.java:96)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB

>>>>> $$2b662bba.getDeploymentPlan(<generated>)
>>>>>
>>>>>       at org.apache.geronimo.deployment.Deployer.deploy 
>>>>> (Deployer.java:232)
>>>>>
>>>>>       at org.apache.geronimo.deployment.Deployer.deploy 
>>>>> (Deployer.java:124)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$ 
>>>>> $734a235d.invoke(<generated>)
>>>>>
>>>>>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke 
>>>>> (FastMethodInvoker.java:38)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke 
>>>>> (GBeanOperation.java:122)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
>>>>> (GBeanInstance.java:852)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.kernel.basic.BasicKernel.invoke 
>>>>> (BasicKernel.java:239)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDe

>>>>> ploy(AbstractDeployCommand.java:106)
>>>>>
>>>>>       at
>>>>> org.apache.geronimo.deployment.plugin.local.DistributeCommand.run 
>>>>> (DistributeCommand.java:60)
>>>>>
>>>>>       at java.lang.Thread.run(Thread.java:534)
>>>>>
>>>>> Caused by: org.apache.xmlbeans.XmlException: Invalid deployment  
>>>>> descriptor:
>>>>> [error: cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'property@http://geronimo.apache.org/xml/ns/naming-1.1' here in  
>>>>> element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1, error:
>>>>> cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'res-type@http://geronimo.apache.org/xml/ns/naming-1.1' here in  
>>>>> element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1, error:
>>>>> cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'res-auth@http://geronimo.apache.org/xml/ns/naming-1.1' here in  
>>>>> element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1, error:
>>>>> cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'res-sharing-scope@http://geronimo.apache.org/xml/ns/naming-1.1'  
>>>>> here in
>>>>> element resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1,  
>>>>> error:
>>>>> cvc-complex-type.2.4a: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' instead of
>>>>> 'pattern@http://geronimo.apache.org/xml/ns/naming-1.1' here in element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1, error:
>>>>> cvc-complex-type.2.4c: Expected element
>>>>> 'ref-name@http://geronimo.apache.org/xml/ns/naming-1.1' before the  
>>>>> end of
>>>>> the content in element
>>>>> resource-ref@http://geronimo.apache.org/xml/ns/naming-1.1]
>>>>>
>>>>> Descriptor: <xml-fragment
>>>>> xsi:schemaLocation="http://geronimo.apache.org/xml/ns/j2ee/web-1.1
>>>>> ../../../schemas/geronimo-web-1.1.xsd
>>>>> http://geronimo.apache.org/xml/ns/naming-1.1     geronimo- 
>>>>> naming-1.1.xsd
>>>>> http://geronimo..apache.org/xml/ns/security-1.1
>>>>> geronimo-security-1.1.xsd http://geronimo.apache.org/xml/ns/ 
>>>>> deployment-1.1
>>>>> geronimo-module-1.1.xsd "
>>>>> xmlns:geronimo="http://geronimo.apache.org/xml/ns/security-1.1"
>>>>> xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"
>>>>> xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> xmlns:tom="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.1">
>>>>>
>>>>> Can anyone provide assistance?  Thanks in advance.
>>>>> -- 
>>>>> View this message in context: http://www.nabble.com/geronimo- 
>>>>> mail-1.1.1-tf3081989.html#a8563115
>>>>> Sent from the Apache Geronimo - Users mailing list archive at  
>>>>> Nabble.com.
>>>>>
>>>>>       
>>>>>           
>>>>     
>>>>         
>>>   
>>>       
>>
>>     
>
>   


Mime
View raw message