草庐IT

java - 为什么更改 WEB-INF/lib 中 jar 文件的目录顺序会导致 Tomcat 8 中出现 NoClassDefFoundError?

我们有一个在Tomcat8中运行的Web应用程序,最近我们观察到我们团队中一些开发人员构建的Artifact(.war文件)抛出一个NoClassDefFoundError,而同样的其他人构建的代码按预期运行。来自logs/localhost.2018-05-11.log:org.jboss.resteasy.spi.UnhandledException:java.lang.NoClassDefFoundError:Couldnotinitializeclassorg.geotools.referencing.datum.DefaultEllipsoid...Causedby:java

java - 使用 Metro 2.1 的 Tomcat 7.0.11 上的 WSServlet ClassNotFoundException 错误

我正在尝试使用Metro2.1在WindowsServer2008R2上使用Tomcat7.0.11创建一个简单的网络服务。我来自C#/WCF背景,试图更好地了解Web服务互操作性。我实际上是在遵循MartinKalin的书“JavaWebServicesUpandRunning”中的一个例子。我有以下内容:CATALINA_HOME=c:\tomcat-7.0.11在我的catalina.properties文件中:server.loader=c:/metro-2.1/bin/*.jar(注意,我也尝试将此路径添加到common.loader)。我已将以下METROjar文件复制到C

java - Tomcat 过滤器对请求输入流产生不利影响(输入流为空)

我在我的应用程序中添加了一个过滤器,它只记录有关请求的某些内容。我的一些servlet从ServletRequest#getInputStream读取.自从添加此过滤器后,那些从ServletRequest#getInputStream读取的servlet不再工作,因为输入流为空。通过简单地从我的web.xml中注释掉它来禁用过滤器解决了这个问题。为什么会发生这种情况,有没有一种方法可以在不弄乱ServletRequest#getInputStream的情况下使用过滤器??过滤器实际上是Tomcat的RequestDumperFilter,包含在其示例Web应用程序之一中。我将只包含d

java - 可以将tomcat配置为仅加载签名的jar吗

我有一位客户询问了有关签署tomcat组件以及我们应用程序中的不同jar的问题。基本上,他们想防止任何人只是放入一个jar文件,重新启动tomcat并造成安全问题。我的问题是,是否可以配置tomcat,以便在加载jar文件时验证它们是否已由特定证书签名,如果没有则阻止tomcat启动? 最佳答案 Tomcat本身不提供这个功能。但是,作为一种解决方法,您可以与您的客户一起使用DMZ服务器或他们服务器上的一个位置,您可以在其中放置文件。然后他们可以让作业调度程序运行批处理脚本(在windows上)或shell脚本(在linux/uni

java - 由于 "invalid Lifecycle transition was attempted "错误,无法在 Tomcat 7 上部署应用程序

我有一个问题!我正在尝试在我的tomcat服务器7安装上安装我的webapp,但它一直说它无法部署我的应用程序,因为“尝试了无效的生命周期转换”。这是我的catalina日志错误:org.apache.catalina.LifecycleException:AninvalidLifecycletransitionwasattempted([before_destroy])forcomponent[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myapp]]instate[STARTED]atorg.a

java - 如何以编程方式将webservice发布到tomcat

我想以编程方式向tomcat发布一个网络服务。使用例如JAX-WS或ApacheCXF类似于Endpoint.publish(...)。//howtotellthistomcat?Endpoint.publish("http://0.0.0.0:8080/SimpleService",serviceImpl);//orbettersomethinglikethis:Endpoint.publish("/SimpleService",serviceImpl);无需使用web.xml和/或sun-jaxws.xml(针对每个服务)问题:是否有任何已知的方法来完成它(使用JAX-WS或Apa

java - 调用 Tomcat doFilter() 并提交响应

我有一个Tomcat过滤器,它根据URL将请求委托(delegate)给处理对象。这是FilterChain中唯一的过滤器。我有一个Ajax应用程序可以通过大量请求来处理此过滤器。最近我注意到一个问题,过滤器的doFilter方法经常以提交的响应作为参数调用(在内部,它是标记为提交的土狼响应)。在我看来,如果recycle()方法没有在这个土狼响应中调用,唯一可能发生这种情况的方法。我已检查以确保我没有保留对任何请求、响应、outputStream或编写器对象的引用。此外,我确保在finallyblock中关闭outputStream。但是,这并不能解决这个问题。这听起来像是我在滥用s

java - 我们把Servlets放在Tomcat的目录结构中的什么位置呢?

我从网上复制了一个HelloServlet应用程序并将其放在ROOT文件夹中。我运行了服务器,但它不起作用。怎么了?我认为它与Java类的位置有关。 最佳答案 这份文件应该对你有帮助http://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html/WEB-INF/classes/-此目录包含您的应用程序所需的任何Java类文件(和相关资源),包括未合并到JAR中的servlet和非servlet类文件。如果您的类被组织到Java包中,则必须在/WEB-INF/classes

java - 如何在 Tomcat 7 中设置 <Resource> 以便我不需要在代码中使用 "java:/comp/env"?

我是设置JNDI资源和在Tomcat中设置JNDI资源的新手。我继承了一个servlet应用程序。它通过WebLogic在测试服务器上运行。servlet应用程序通过以下方式访问其数据库资源:ctx=newInitialContext();ds=(javax.sql.DataSource)ctx.lookup("myDataBaseName");conn=ds.getConnection();当我在测试JSP中尝试时,它不起作用。我明白了javax.naming.NameNotFoundException:NamemyDataBaseNameisnotboundinthisContex

java - 为什么 Tomcat 找不到 SMTPTransport(Session, URLName)?

我们有一个发送邮件的网络应用程序。出于某种原因,它的安装已决定无法找到采用(Session,URLName)参数的SMTPTransport的构造函数。堆栈跟踪的相关位:javax.mail.NoSuchProviderException:Providerclassdoesnothaveaconstructor(Session,URLName):protocol=smtp;type=javax.mail.Provider$Type@1dedf78;class=com.sun.mail.smtp.SMTPTransport;vendor=SunMicrosystems,Incatjava