Tag: tomcat

我如何制作Java守护进程

我需要在我的web应用程序(tomcat上的jsp)中进行定期操作(调用java方法)。 我怎样才能做到这一点 ? Java守护程序或其他解决方案?

Tomcat中JNDI的Java Mail API配置文档

我花了几天的时间来弄清楚如何通过JNDI在Tomcat中配置javax.mail.Session并进行身份validation ,现在我得到了它,但只是在深入研究代码之后。 在这段时间里,我看到了有史以来最糟糕的代码:javax.mail.Service #connect(String,String,String,String)Version 1.4.1 if (user == null) { user = url.getUsername(); if (password == null) // get password too if we need it password = url.getPassword(); } else { if (password == null && user.equals(url.getUsername())) // only get the password if it matches the username password = url.getPassword(); } 密码何时分配? 为什么两次检查null? – 然后意识到其他不属于if […]

无法找到XML架构命名空间的Spring NamespaceHandler

我在eclipse中运行tomcat中的一些servlet代码。 它一直工作正常,但今天我收到错误Unable to locate Spring NamespaceHandler for XML schema namespace 。 完整错误如下所示: SEVERE: Allocate exception for servlet RunServlet org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx] Offending resource: class path resource [spring/dao.xml] 我已经看过关于这个错误的其他问题,但我真的不明白答案。 当我查看目标库时,我可以看到spring-tx-3.0.5.RELEASE.jar位于WEB-INF/lib 。 谁能帮我吗? 非常感谢! 编辑: dao.xml启动: 编辑:不确定这是否相关,但我正在研究mac book pro,最新的mac更新更新到Java 1.6,我刚刚将我的Java首选项切换到1.6。 编辑:我也在Tomcat日志中收到以下消息,但我认为我以前收到它并且我认为它不相关,但以防万一: INFO: Starting Servlet Engine: Apache Tomcat/7.0.14 […]

如何在ServletContextListener中exception时中止Tomcat启动?

我有一个实现ServletContextListener的类,它在启动时加载一些资源。 当我的逻辑中发生一些不良事件时,这些资源对于我希望在整个启动时失败的方式对应用程序至关重要。 我可以从ServletContextListener.contextInitialized()方法中执行任何命令来停止和失败整个Tomcat启动吗?

将外部服务器的自签名证书添加到我的Tomcat的受信任证书中

我的Tomcat需要使用SSL(TLS)连接到另一个 Web服务器( https://foreign.example.com )。 foreign.example.com有一个自签名证书,我相信。 当然,我的Tomcat默认不会 – 所以我必须告诉它。 一种方法是: $JRE/bin/keytool -import -alias my -file ssl-cert-myselfsigned.cer -keystore $JRE/lib/security/cacerts 这有效 :我的Tomcat允许SSL连接。 但是,我不喜欢这样做 :它将证书导入我的Java安装的可信密钥。 我不想说:“我的机器上运行Java的每个应用程序都应该信任该证书”。 只有Tomcat(或运行Tomcat的用户)才应该信任它。 所以我尝试将它导入~/.keystore的tomcat-user的密钥库,并使用以下属性设置Tomcat的 : keystoreFile=”${user.home}/.keystore” keystorePass=”thePassphraseICreatedTheKeystoreWith” 但是,这根本不起作用(我相信,这仅适用于我的Tomcat的服务器证书,而不适用于外部服务器的服务器证书,对吧?) 我尝试使用truststoreFile / truststorePass属性,但它们也不起作用。 (这些属性记录在http://tomcat.apache.org/tomcat-6.0-doc/config/http.html ) 有没有办法用外部服务器的服务器证书设置Tomcat,或者可能向java添加一些命令行参数,这使得我的密钥库(和密钥库密码)可用于JVM实例?

Eclipse:覆盖Tomcat中的JNDI资源

我正在使用Eclipse中的Java Web应用程序并部署到由Eclipse运行的Tomcat实例。 我试图通过JNDI Resource元素让这个应用程序与另一台主机上的数据库通信。 应用程序中包含的context.xml文件尝试连接到在localhost上运行的MySQL服务器,如下所示: 当我在实际主机上安装它时,此配置有效。 也就是说,它正确读取环境值并连接到数据库。 我也可以在单独的主机上安装它并编辑/etc/tomcat6/conf/Catalina/localhost/myaplication.xml来更改JDBC URL,如下所示: … … 此配置也有效。 换句话说,我非常确信我的应用程序正确使用了JNDI。 所以,现在我想在Eclipse的桌面上将它部署到Tomcat。 我已经以标准方式将项目添加到Tomcat,并且我已经编辑了服务器的context.xml文件(即Eclipse在“Servers”项目中的Tomcat服务器下显示的文件),如下所示: 当我在Eclipse中重启Tomcat时,日志显示正确读取Log4J文件的路径(因为它开始记录到Tomcat控制台),我甚至看到它吐出了正确的“mykey”值。 但是,初始化在尝试从configDB读取时失败。 起初,我认为这是一个连接问题,但在裁定之后,我在调试器中重新启动了Tomcat并检查了从JNDI读取的DataSource; 它的URL指向localhost,这意味着它正在使用应用程序的context.xml文件中的那个,而不是Tomcat的! 我已经尝试了几种方法来实现这一点,包括将这些信息放在Tomcat的server.xml文件中,但似乎没有任何效果。 或者,更准确地说,它有点类似,因为它正在读取环境值而不是资源。 我在这做错了什么? 如何让Eclipse的Tomcat服务器覆盖此资源?

在Tomcat下启动线程

有人告诉我你不应该从在Tomcat下运行的webapp(或任何其他容器,大概是)开始你自己的线程 Runnable myRunnable = new Runnable() { public void run() { System.out.println(“I’m running”); } } new Thread(myRunnable).start(); 或类似地: ScheduledThreadPoolExecutor retrySchedulerService = new ScheduledThreadPoolExecutor(3); retrySchedulerService.schedule(dlrRetryTask, 120, TimeUnit.SECONDS); 而不是上述任何一种,你应该从Tomcat知道的某些线程池中请求一个线程。 对此有任何道理,还是完全是poppycock?

加密JBoss配置中的敏感信息

JBoss中的标准数据源配置要求数据库用户的用户名和密码位于xxx-ds.xml文件中。 如果我将我的数据源定义为c3p0 mbean,我会遇到同样的问题。 有加密用户和密码的标准方法吗? 保存钥匙的好地方是什么? 这当然与tomcat相关 – context.xml文件,spring配置文件等。

tomcat 7.0.50 java websocket实现给出了404错误

我正在尝试使用Java Websocket API(1.0) – JSR 356中指定的带注释端点在tomcat 7.0.50上实现websocket。以下是我编写代码的简要步骤1)使用@ServerEndpoint注释编写websocket端点2)实现@onOpen和@onMessage方法3)在谷歌浏览器上使用javascript打开websocket。 请按顺序查找与上述步骤对应的代码 1)步骤1和2 – 编写websocket服务器端点: package com.jkweb.websocket; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.websocket.EndpointConfig; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @ServerEndpoint(value=”/websocket/fileuploadtracker”) @OnOpen public void open(Session session,EndpointConfig config) { …… } @OnMessage public void onMessage(Session session, String msg) { […]

为什么Ant在部署时返回403?

我正在尝试部署到Tomcat 7中的war文件。它给了我以下错误。 deploy: [echo] Deploying on Tomcat. BUILD FAILED C:\Users\coder\workspace\projectName\build.xml:84: java.io.IOException: Server returned HTTP response code: 403 for URL: http://localhost:8090/manager/deploy?path=%2FprojectName 这是我的构建文件