Tag: tomcat

我如何读取在Apache Tomcat中运行的webapp的清单文件?

我有一个包含清单文件的web应用程序,我在其中编写我的应用程序的当前版本在一个ant生成任务。 清单文件是正确创build的,但是当我在运行时尝试读取它时,我得到了一些奇怪的副作用。 我在清单中阅读的代码是这样的: InputStream manifestStream = Thread.currentThread() .getContextClassLoader() .getResourceAsStream("META-INFFFF/MANIFEST.MF"); try { Manifest manifest = new Manifest(manifestStream); Attributes attributes = manifest.getMainAttributes(); String impVersion = attributes.getValue("Implementation-Version"); mVersionString = impVersion; } catch(IOException ex) { logger.warn("Error while reading version: " + ex.getMessage()); } 当我将eclipse附加到tomcat上时,我发现上面的代码有效,但是它似乎得到了一个与我期望的不同的清单文件,我可以告诉它,因为ant版本和构build时间戳是不同的。 然后,我把“META-INFFFF”放在那里,上面的代码仍然有效! 这意味着我正在阅读一些其他清单,而不是我的。 我也试过了 this.getClass().getClassLoader().getResourceAsStream(…) 但结果是一样的。 从tomcat运行的webapp里面读取manifest文件的正确方法是什么? 编辑 :谢谢你的build议。 另外,我应该注意到我正在运行tomcat standalone; 我从命令行启动它,然后附加到Eclipsedebugging器中正在运行的实例。 这不应该有所作为,应该吗?

Tomcat和Spring Web – 找不到类Exception org.springframework.web.context.ContextLoaderListener

当我尝试通过Eclipse启动Tomcat时(通过右键单击Project,Run As – > Run on Server),我得到以下exception。 SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4660) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226) at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Jun 12, 2011 8:46:11 PM org.apache.catalina.core.StandardContext listenerStart 我正在使用Maven(m2eclipse)构build我的项目。 我已经将必要的依赖关系添加到了Spring库中,并且可以在最终构件(包含类)的lib目录中看到spring-web.jar文件。 当我在IDE外部署应用程序时,它工作正常。 任何指针为什么发生这种情况将不胜感激。

getOutputStream()已经被调用了这个响应

我谷歌的错误信息getOutputStream() has already been called for this response ,许多人说这是因为空间或换行符之后<%或%> ,但在我的代码中,没有空格或换行符。 我在linux上使用tomcat6。 <%@ page import="java.servlet.*, javax.servlet.http.*, java.io.*, java.util.*, com.lowagie.text.pdf.*, com.lowagie.text.*" %><% response.setContentType("application/pdf"); Document document = new Document(); try{ ByteArrayOutputStream buffer = new ByteArrayOutputStream(); PdfWriter.getInstance(document, buffer); document.open(); PdfPTable table = new PdfPTable(2); table.addCell("1"); table.addCell("2"); table.addCell("3"); table.addCell("4"); table.addCell("5"); table.addCell("6"); document.add(table); document.close(); DataOutput dataOutput = new DataOutputStream(response.getOutputStream()); byte[] bytes […]

用于Java 8的Tomcat 8 Maven插件

tomcat7-maven-plugin与tomcat7-maven-plugin服务器和tomcat7-maven-plugin一起工作吗? 我找不到任何tomcat8-maven-plugin 。

SSLHandshakeException:不存在主题替代名称

我正在通过java代码调用HTTPS SOAP Web服务。 我已经在jre cacerts keystore中导入了自签名证书。 现在我得到: com.sun.xml.internal.ws.com.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present 服务URL的主机名与cert中提供的CN的主机名不匹配。 我阅读了一个在这里定义自定义主机名validation者的解决方法。 但我无法在我的代码中实现解决方法。 public SOAPMessage invokeWS(WSBean bean) throws Exception { SOAPMessage response=null; try{ /** Create a service and add at least one port to it. **/ String targetNameSpace = bean.getTargetNameSpace(); String endpointUrl = bean.getEndpointUrl(); QName serviceName = […]

对于Tomcat 8,使用mod_proxy返回503服务不可用的Httpd

我正在尝试将Tomcat与Apache集成。 我的目标是通过http://localhost/myapp将所有请求redirect到http://localhost:8080 我遵循这个指南: http : //tomcat.apache.org/tomcat-8.0-doc/proxy-howto.html 我的httpd.conf如下所示: Include conf.modules.d/*.conf LoadModule proxy_module modules/mod_proxy.so ProxyPass /myapp http://localhost:8080 retry=0 timeout=5 ProxyPassReverse /myapp http://localhost:8080 我的apache-tomcat中的server.xml如下所示: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" proxyPort="80" /> 现在,当我尝试url http://localhost/myapp ,它会提供503 Service Unavailable错误。 Tomcat和Apache都正常运行。 URL http://localhost:8080正常工作。 可以有文件权限问题吗? 对于tomcat ,用户和组是root/root ,对于httpd ,用户和组是apache/apache 我错过了什么,或者我做错了吗? Httpd版本是2.4.6,Tomcat版本是8.0 httpd错误日志: [proxy:error] [pid 19905] (13)Permission denied: AH00957: HTTP: attempt to connect to […]

如何在web.xml中的<web-app>标签中指定根上下文?

我想在我的WAR文件中指定我的Java Web应用程序的根上下文。 我怎样才能在web.xml文件中使用有效的web-app XML? 哦,是的,我想以应用程序服务器不可知的方式做到这一点。 先谢谢你,罗布

如何将我的应用程序添加到Eclipse中的Tomcat?

我有一个使用Maven构build的Web应用程序。 大多数情况下,我使用Intellij IDEA构build应用程序,但现在我想在Eclipse中导入应用程序以查看此IDE中的某些内容。 在mvn eclipse:eclipse ,我在Eclipse中添加了应用程序,但是当我尝试将应用程序添加到服务器(tomcat)时,我收到: There are no resources that can be added or removed from the server 解决scheme?

如何在Eclipse中使用Tomcat 8?

编辑2014-02-07:Eclipse月神在这里,支持Tomcat 8是包含在捆绑的WTP:)快乐的日子! Tomcat 8仍在开发中,但你可以在这里find它。 现在主Apache Tomcat页面上有一个RC版本。 更新2/27/14:现在已经发布了8,而为WTP构build的适配器,还没有集成到eclipse包中。 不久! 但是在Eclipse Kepler中,Tomcat 8的添加服务器列表中没有支持的适配器.Tomcat 7适配器不起作用,并且看起来好像没有新的扩展名可以在“Install new Extension”对话。 我唯一的select是让它(Tomcat 8)在Eclipse之外的本地运行,也许钩了一个远程debugging器到它的步进代码? 那么甚至可以用于Eclipse Kepler + Tomcat 8? IntelliJ IDEA 12在我投入该path的30分钟内无法完成。 如果你想知道为什么我试图做到这一点,我玩弄Spring 4.0.0.M1和4.0.0.M2 WebSocket的东西。 他们(根据Rossen Stoyanchev的Spring 4.0 博客文章和示例)使用在Tomcat 8中实现的JSR-356,理论上在某些时候将其移植到Tomcat 7。 对于“如何轻松获得Spring 4 WebSocket支持的开发环境”这个更广泛的问题的答案? 会很好,但是知道如何将不支持的Web服务器插入到Eclipse中也是很好的。 干杯,E **更新8/7/13 – Rossen Stoyanchev更新了Spring 4.0.0.M2博客,并添加了一些jpda的智慧,并分享说,他正在使用远程debugging: 也就是说,在Eclipse中使用Tomcat 8进行debugging并不困难。 只要将bin / startup.sh中的最后一行改为(注意添加“jpda”): exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@" Eclipse内部为localhost 80端口创build远程debuggingconfiguration,启动Tomcat后启动它,并且可以在源代码中放置断点。 […]

从Netbeans启动Tomcat失败

我从Netbeans IDE 7.4启动Apache Tomcat 6时遇到问题(在7.3版本中,我遇到了同样的问题,其他人提到这个问题也存在于其他版本,如8.0等)。 我做了什么: 删除已安装的Tomcat 7(不删除它,我有同样的困难) 添加新的服务器,从Apache Tomcat网站下载(版本apache-tomcat-6.0.39,与其他版本我有同样的问题) 我的服务器位置:D:\ apache-tomcat-netbeans 系统variablesCATALINA_HOME:D:\ apache-tomcat-netbeans 系统variablesJAVA HOME:C:\ Program Files \ Java \ jdk1.7.0_51 \ tomcat用户:我让netbeans创build新的用户,用密码tomcat调用tomcat。 当我添加服务器后打开{tomcat} \ conf \ tomcat-users.xml文件时,有关于我的用户的信息: <user password =“tomcat”roles =“manager,admin”username =“tomcat”/> 当我现在点击“开始”,我得到了“ Tomcat开始失败 ”。 我的怀疑: 我正在以pipe理员身份在Windows 7上工作,所以我认为这不是对文件权限的问题。 禁用代理没有帮助。 日志:只有一个日志文件被创build:localhost.2014-03-06.log,它是完全空的。 以pipe理员身份启动Netbeans并没有帮助。 从命令行一切都没问题,我在正常或debugging模式下启动 ( catalina.bat jpda start或startup.bat )没有问题。