Tag: tomcat

运行Tomcat并使用自己的server.xml部署项目

我只想运行一个使用pom.xml在maven项目中配置的Web项目。 它使用maven tomcat7-maven-plugin来部署Web应用程序工件,此时所有工作正常。 现在我想在tomcat配置中添加自己的server.xml和tomcat-users.xml。 我读到我需要添加以下行。 src/main/resources/tomcat/server.xml src/main/resources/tomcat/tomcat-users.xml 这没关系。 它现在正在运行,并且使用上面的配置文件部署了tomcat,但问题是> 那里没有部署Web应用程序工件 (当我运行tomcat7:run时没有自动部署)。 看来插件没有检测到工件,只是启动tomcat服务器而不将工件添加到webapps只需使用新的配置文件。 我用这个配置。 org.apache.tomcat.maven tomcat7-maven-plugin 2.0 tomcat-run exec-war-only package http://localhost:8080/web-services /web-services src/main/resources/tomcat/server.xml src/main/resources/tomcat/tomcat-users.xml com.koitoer.webservices web-services 1.0-SNAPSHOT war /web-services 但是tomcat开始部署webapp工件但不使用新的配置文件。 什么是正确的配置,我检查了这篇文章,但没有,这是可能的或我应该使用tomcat管理器手动添加war文件?

如何修复“无法编写核心转储。 运行java时,核心转储已被禁用“错误

我正在使用eclipse开发一个Web应用程序,当我尝试在eclipse中运行我的应用程序时,我遇到了一个问题。 # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f41e4e610b0, pid=3463, tid=139924549404416 # # JRE version: 7.0_09-b05 # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.5-b02 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libwebkitgtk-1.0.so.0+0x11670b0] void WTF::freeOwnedGPtr(_GdkEvent*)+0x15e00 # # Failed to write core […]

如何将Spring MVC控制器映射到带有和不带斜杠的uri?

我有一个Spring Controller,它有几个RequestMappings用于不同的URI。 我的servlet是“ui”。 servlet的基URI仅适用于尾部斜杠。 我希望我的用户不必输入尾部斜杠。 这个URI有效: http://localhost/myapp/ui/ 这个没有: http://localhost/myapp/ui 它给了我一个HTTP状态404消息。 我的web.xml中的servlet和映射是: ui org.springframework.web.servlet.DispatcherServlet 1 ui /ui/* 我的控制器: @Controller public class UiRootController { @RequestMapping(value={“”,”/”}) public ModelAndView mainPage() { DataModel model = initModel(); model.setView(“intro”); return new ModelAndView(“main”, “model”, model); } @RequestMapping(value={“/other”}) public ModelAndView otherPage() { DataModel model = initModel(); model.setView(“otherPage”); return new ModelAndView(“other”, “model”, model); } }

在哪里/如何使用tomcat存储持久数据?

我应该在Tomcat Web应用程序中将持久性文件存储在何处? javax.servlet.context.tempdir不可行,重新部署/删除应用时会被删除 不希望在例如servlet init参数中使用绝对路径 将文件存储在数据库中不是一种选择

Tomcat需要太多时间才能启动 – Java SecureRandom

请不要将其标记为重复。 对于这两个问题,这是一个后续问题。 Tomcat7在Ubuntu 14.04 x64上启动太晚[Digitalocean] https://stackoverflow.com/a/2325109/6785908 我理解,替换 securerandom.source=file:/dev/urandom 同 securerandom.source=file:/dev/./urandom 在$JAVA_PATH/jre/lib/security/java.security中将解决这个问题。 我的问题是,在制作中这样做是否可以? 这会对安全性产生什么影响(如会话ID变得可预测)? 如果这不太安全,还有其他方法可以更快地提供足够的熵吗? 更新 我使用openstack进行部署(或者只是说,使用AWS或GCP或任何其他云提供商)。 因此,添加声卡等硬件设备对我来说不是一个选择。

Tomcat未能部署.war

我正在尝试按照本教程创建一个简单的REST Web服务,但是我会在tomcat上部署它并抛出exception: FAIL – Application at context path /restful could not be started FAIL – Encountered exception org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]] 我已经四处寻找解决方案并找到了这个问题而且这个问题他们让我觉得这是一个servlet映射问题但是我不确定如何修复它! 这是我的日志文件: 18/12/2012 9:57:16 AM org.apache.catalina.startup.HostConfig deployWAR SEVERE: Error deploying web application archive /opt/tomcat7/webapps/restful.war java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/restful]] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) at […]

从Tomcat 8.0.39升级到8.0.41会导致“无法扫描”错误

我有一个Spring Boot WAR应用程序在AWS上的Tomcat 8.0.39下完美地工作。 发出sudo service tomcat8 stop ,通过sudo yum update升级到Tomcat 8.0.41,并重启实例,应用程序无法启动。 在catalina日志文件中,我看到了大量类型的exception: 19-Feb-2017 10:27:15.326 WARNING [localhost-startStop-1] org.apache.tomcat.util. scan.StandardJarScanner.scan Failed to scan [file:/usr/share/java/tomcat8/javax. annotation-api.jar] from classloader hierarchy java.io.FileNotFoundException: /usr/share/java/tomcat8/javax.annotation-api.jar (No such file or directory) 以下是Tomcat抱怨的文件: javax.annotation-api.jar jsr181-api.jar jaxb-api.jar javax.xml.soap-api.jar FastInfoset.jar mimepull.jar saaj-impl.jar stax2-api.jar woodstox-core-asl.jar jaxb-core-2.2.10-b140802.1033.jar jaxb-api-2.2.12-b140109.1041.jar istack-commons-runtime-2.19.jar txw2-2.2.10-b140802.1033.jar hk2-core.jar class-model.jar config.jar auto-depends.jar javax.inject.jar hk2-api.jar osgi-resource-locator.jar […]

Tomcat 6,JMX和动态端口问题

在阅读并尝试了很多之后,我不得不问是否有人能解决我的问题。 我试图在防火墙后面设置一些Tomcats(V6)。 这没什么大不了的 – 但我想通过JMX监控它们。 我阅读了TC文档并遇到了JMXRemoteLifecycleListener 。 我的测试TC安装完全按照上面的链接进行设置。 因此,我没有从我们网络中的一个主机到另一个主机的连接。 另外,每次启动TC时都会打开第三个随机端口。 在我的server.xml中,监听器被激活 catalina.out说一切都好。 2011-06-14 16:46:48,819 [main] INFO org.apache.catalina.mbeans.JmxRemoteLifecycleListener- The JMX Remote Listener has configured the registry on port 8050 and the server on port 8060 for the Platform server 端口是开放的,我可以通过telnet从任何其他主机连接到它们。 我可以在本地连接到vm( service:jmx:rmi://:8xxx/jndi/rmi://:8xxxx/jmxrmi ) Netstats输出如下: tcp6 0 0 :::8080 :::* LISTEN 11291/java tcp6 0 0 :::8050 :::* […]

运行Tomcat服务器org.apache.catalina.deploy.WebXml addServlet时出现exception

我使用eclipse在本地机器上编写了几个servlet。 我在我的本地机器上测试过它们,一切都很好。 然后我将我的项目导出为.war文件并将其放在我的tomcat的webapps目录下的另一台机器上,我只有ssh访问权限。 我重新启动了我的tomcat服务器,在查看日志文件之后,我发现它抛出了以下exception: java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet at org.apache.tomcat.util.IntrospectionUtils.callMethod1(IntrospectionUtils.java:855) at org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201) at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1051) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537) at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1875) at org.apache.catalina.startup.ContextConfig.getDefaultWebXmlFragment(ContextConfig.java:1472) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1250) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) […]

java tomcat utf-8编码问题

我正在使用java / jsp / tomcat / mysql开发一个简单的Web应用程序,最大的问题在于字符编码,因为我需要处理UTF-8编码而不是默认的8851。 首先,我想描述一下我的程序结构。 我正在使用一个名为Controller.java的Servlet来处理所有请求。 所以在web.xml中,我有一个Controller servlet,它接受来自* .do的所有请求。 然后,此Controller将根据请求的URL分派请求,例如,如果客户端要求register.do,Controller将把请求分派给Register.java。 在Register.java中,有一个方法将请求作为参数,即: public String perform(HttpServletRequest request) { do something with the request… } 所以问题是如果我想在这个方法中用UTF-8打印一些东西,它会给出随机字符。 例如,我有一个存储几个常量的枚举,其中一个属性是Enum在繁体中文中的名称。 如果我打印出来的话 public static void main(Stirng[] args{ System.out.println(MyEnum.One.getChn()); logger.info(MyEnum.One.getChn()); } 这是用中文正确打印的。 但是,如果我将确切的代码放在处理HttpServletRequest的方法中: public String perform(HttpServletRequest request) { System.out.println(MyEnum.One.getChn()); logger.info(MyEnum.One.getChn()); } 它们作为随机字符打印,但我可以从调试窗口(eclipse)看到变量保存正确的中文字符。 因此,当我想存储来自request.getParameter()的值时,会发生同样的情况。 在调试窗口中,我可以看到变量保存了正确的字符,但我将其打印出来或尝试将其存储在数据库中,它是随机字符。 我不知道为什么行为会像这样,这阻止我阅读提交的表单值并将它们存储到数据库中。 有人可以给出一些暗示吗? 万分感谢。