Tag: tomcat

Tomcat虚拟主机和通配符dns匹配

我创建了一个应用程序,它需要接受通配符dns并使用该通配符值向数据库请求。 我试图为自己模拟一个虚拟环境来实现我想要的东西: 1)在我的Linux操作系统中,我更改了/ etc / hosts并添加以下行: 127.0.0.1 test-domain.com 127.0.0.1 mehdi.test-domain.com 2)我更改了我的tomcat server.xml文件,如下所示: www.test-domain.com *.test-domain.com 3)我将项目war文件’Root.war’部署到$ {TOMCAT} / webapps / ROOT文件夹中 现在,当我请求“ www.test-domain.com ”时,我看到了网页主页,我想在输入这个url“ mehdi.test-domain.com ”时,我从url中获取mehdi并对其执行操作向我的用户显示mehdi页面。 问题1:如何在应用程序中获取通配符值? 问题2:我们是否有可能让tomcat在运行时将请求URL转换为其他内容并将其传递给应用程序(我需要通配符值ex:mehdi)? http://mehdi.test-domain.com转到http://test-domain.com/mehdi 问题3:是否可以只有第二个<主机名= …定义并删除第一个? 我怎么能在我的应用程序中处理它?

Spring-boot ErrorPage不能与独立的Tomcat一起使用

我仍然在努力让Spring-boot错误页面完全在一个带有部署WAR文件的独立tomcat中运行。 我有一个配置类如下: @Configuration @ComponentScan @EnableAutoConfiguration(exclude = [ GroovyTemplateAutoConfiguration, SecurityAutoConfiguration, ErrorMvcAutoConfiguration, JmxAutoConfiguration ] ) class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder application ) { application.sources( Application ) } 并且我的error handling配置如下: @Configuration class ErrorConfiguration implements EmbeddedServletContainerCustomizer { @Override public void customize( ConfigurableEmbeddedServletContainer container ) { container.addErrorPages(new ErrorPage( HttpStatus.NOT_FOUND, “/errors/404” )) } 这个信息似乎得到了使用,但并不像我期望的那样 – 如果我只是去一个不存在的URL然后我得到tomcat默认的404页面 […]

在Java中动态更改ResourceBundle Locale

在加载ResourceBundle之后是否可以执行此操作? 我在Tomcat下工作并尝试了不同的代码示例,但它们都没有为我工作。 有什么建议吗?

如何在Tomcat中创建没有池的数据源

我使用JNDI上下文在Tomcat的context.xml文件中为JDBC驱动程序创建数据源,如下所示, 默认情况下,Tomcat将使用DBCP数据源工厂并创建池化数据源。 我们使用的特定数据库和驱动程序已经支持较低级别的池,而额外的池实际上会损害性能。 无论如何使用像这样的JNDI资源创建基本数据源(没有池),这样我可以在最小配置更改的情况下在不同的数据库之间切换? 我知道我可以编写自己的数据源工厂或使用其他驱动程序来实现这一点,但我正在寻找一个更简单的解决方案。

tomcat 6 HTTP身份validation

我有一个Web应用程序,我正在尝试在Redhat Enterprise 5.2上的Tomcat 6.0.9中部署。 我被给了j2ee-1.4.jar放在/ lib目录中。 我发现重启tomcat后出现了几个问题。 但请注意,删除上面的jar可以解决下面列出的问题。 我被告知我必须包含j2ee-1.4.jar,但我不知道我需要完成哪些步骤来完成这项工作。 First, when attempting to login to Tomcat Manager I am no longer presented with a login dialog. It jumps right to the 401 page stating “This request requires HTTP authentication ()” 此事件的管理器日志显示如下: org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp threw exception javax.servlet.ServletException: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext; at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:274) at […]

Spring websocket示例 – 错误 – 您是否在支持J SR-356的Servlet容器中运行?

我试图在@ https://spring.io/guides/gs/messaging-stomp-websocket上运行Spring 4示例。 当我尝试连接到套接字时,它会抛出exception。 根据示例,您需要tomcat 7.0.50并且我检查了具有正确版本的tomcat的可执行jar。 任何指针都会有所帮助。 java.lang.IllegalArgumentException: No ‘javax.websocket.server.ServerContainer’ ServletContext attribute. Are you running in a Servlet container that supports JSR-356?

web app和依赖jar转移到Tomcat 6 lib目录,logback找不到配置文件

我在Tomcat 6上安装了一个Java 6应用程序。应用程序jar文件和依赖jar文件存在于我的webapps / myapp / WEB-INF / lib目录中,而我的logback配置文件存在于webapps / myapp / WEB-INF / classes中。 该应用程序是唯一一个在tomcat实例中运行的应用程序,我们一次运行大约一百个实例。 服务器管理团队决定应用程序和依赖库是冗余的,并将它们移动到tomcat / lib。 首先,他们将myapp.jar移动到tomcat / lib。 这导致了一个例外: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 这有点奇怪,因为,如果有的话,我会期望它尝试加载我的应用程序失败。 相反,似乎从tomcat / lib中的jar加载应用程序已经改变了类加载器的路径。 我认为web应用程序目录,当然还有WEB-INF / web.xml,会将类加载器“锚定”到应用程序目录。 似乎并非如此。 当这不起作用时,管理团队将所有其余的依赖库移动到tomcat / lib目录。 现在应用程序启动,找到它的配置属性文件等,但找不到logback.xml文件(在WEB-INF / classes / logback.xml中)。 同样,这表明类加载器环境中的某些事情发生了重大变化。 最重要的结果是,如果我在WEB-INF / […]

在log4j中扩展PatternLayout时出现问题

我创建了一个新类NewLinePatternLayout.java,它扩展了log4j的PatternLayout.java。 下面是我的log4j.properties。 log4j.rootLogger=INFO, R log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=${catalina.home}/logs/tomcat.log log4j.appender.R.MaxFileSize=10MB log4j.appender.R.MaxBackupIndex=10 log4j.appender.R.layout=com.myCompany.utils.NewLinePatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c – %m%n 我收到如下错误: log4j:ERROR The class “org.apache.log4j.Layout” was loaded by log4j:ERROR [WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ———-> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@620a3d3b ] whereas object of type log4j:ERROR “com.myCompany.utils.NewLinePatternLayout” was loaded by [org.apache.catalina.loader.StandardClassLoader@620a3d3b]. log4j:ERROR No layout set for the appender named [R]. log4j:ERROR A “com.myCompany.utils.NewLinePatternLayout” […]

带有 / 和JSESSIONID的cookie

我正在尝试在我的应用程序的web.xml中设置cookie路径(如此处所示 ): / 因此,我将两个相同的Web应用程序部署到localhost:8080/application-a和localhost:8080/application-b 。 每个应用程序都是一个servlet: public class ControllerServlet extends HttpServlet{ @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { HttpSession session = req.getSession(false); if (session == null) { session = req.getSession(true); System.out.printf(“No session was present – new one created with JSESSIONID=[%s]\n”, session.getId()); } else { System.out.printf(“JSESSIONID cookie was present and HttpSession objects […]

x509certificate certpathvalidation

我们的用例要求在PKIX设置上通过OCSPvalidation证书撤销。 我的出发点是这个相关问题的代码: 客户证书上的OCSP撤销 我在应用程序级别手动执行它,因为tomcat不支持它。 但是,我在构建certPath时遇到了一些麻烦,我想我缺少一些基本的理解。 首先,我尝试为传入的客户端x509Certificate创建certPath。 KeyStore存储已正确初始化,仅包含与客户端x509Certificate匹配的根证书。 编辑:我添加中间证书后得到了相同的结果。 X509CertSelector certSelector = new X509CertSelector(); certSelector.setSubject(x509certificate.getSubjectX500Principal()); PKIXParameters params = new PKIXBuilderParameters(store,certSelector); CertPathBuilder cpb = CertPathBuilder.getInstance(CertPathBuilder.getDefaultType()); CertPath certPath = cpb.build(params).getCertPath(); 但是,我在运行时遇到错误: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 可能会遗漏什么?