请帮忙,
我在OpenShift上有一个Java Spring MVC应用程序(Tomcat 7),它试图在Context.xml中使用资源查找。我在尝试创建会话session = (Session) envContext.lookup("mail/Session");
时遇到500错误(请参阅下面的代码)。 app-root / logs / jbossews.log中的日志中没有例外,e.printStackTrace();
不会在catch块中打印任何内容。是否可以在其他地方记录异常?我以前在apache / tomcat中有一个access.log和error.log,jbossews.log并没有告诉我任何事情(仅供参考我不使用RHC工具,我只是拖尾登录ssh)。
我的项目在eclipse中的本地系统运行良好,没有任何问题。 请帮忙, 感谢
Session session = null;
Context initalContext = new InitialContext();
Context envContext = (Context) initalContext.lookup("java:comp/env");
try{
// Blows up here with a 500 error
session = (Session) envContext.lookup("mail/Session");
}
catch (Exception e) {
// No StackTrace printed
e.printStackTrace();
}
这是我的资源位于jbossews / conf / context.xml
<Resource
name="mail/Session"
type="javax.mail.Session"
auth="Container"
mail.smtp.host="smtp.gmail.com"
mail.smtp.socketFactory.port="465"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
mail.smtp.auth="true"
mail.smtp.port="465"
mail.from="XXXXXX@mailserver.com"
mail.user="XXXXXX@mailserver.com"
password="XXXXXX"
/>
我尝试将以下内容添加到我的web.xml中,看看是否可以解决问题(它没有)。
<resource-ref>
<description>Resource reference to a factory for javax.mail.Session instances that may be used for sending electronic mail messages, preconfigured to connect to the appropriate SMTP server.</description>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
答案 0 :(得分:0)
想出我的问题是由于我的pom.xml中存在问题(毕竟与访问Context.xml无关)。令人讨厌的是,jbossews.log中没有记录异常,因此我必须通过Exception exception = (Exception) httpRequest.getAttribute("javax.servlet.error.exception");
exception.printStackTrace(); ( httpRequest being a HttpServletRequest Object)
我的pom.xml中的问题是这个,我尝试使用:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.1</version>
<scope>provided</scope>
</dependency>
使用以下依赖项解决了问题。
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.2</version>
</dependency>
注意:为了使Context.xml“mail / Session”资源能够在OpenShift上运行,我必须在src / main / webapp / WEB-INF /中创建一个lib文件夹,并将javax.mail-api.jar放在里面
希望这有助于其他遇到问题的人。