java INFO:在classpath上未检测到Spring WebApplicationInitializer类型

n1bvdmb6  于 2023-04-28  发布在  Java
关注(0)|答案(9)|浏览(286)

我有一个spring项目,当我从eclipse部署时,它在我的tomcat 7服务器上运行得很好:运行方式〉〉在服务器上运行。在eclipse选项卡“Servers”中,我看到:

Servers
 Tomcat v7.0 Server at localhost [Started, Synchronized]
   my_project [Synchronized]
     spring-web-3.2.4-RELEASE.jar

我的项目:

  • 不使用Web。xml,我使用javaconf @ annotations。
  • 不使用maven,我使用用户库

我看到项目在:

/srv/applications/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0

我也看到了文件夹:conf,logs,temp,webapps,work,wtpwebapps
我确认,当我从eclipse部署时,在我的tomcat 7服务器上运行正常!
在eclipse控制台中,我得到:

Apr 08, 2014 3:26:59 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:my_project' did not find a matching property.
Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8888"]
Apr 08, 2014 3:27:00 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8843"]
Apr 08, 2014 3:27:01 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3215 ms
Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 08, 2014 3:27:01 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Apr 08, 2014 3:27:11 PM org.apache.catalina.core.ApplicationContext log
INFO: Spring WebApplicationInitializers detected on classpath: [my_project.web.context.WebApplicationInitializer@3599e94c]
Apr 08, 2014 3:27:12 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 08, 2014 3:27:24 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'dispatcher'
Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8888"]
Apr 08, 2014 3:27:24 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8843"]
Apr 08, 2014 3:27:24 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 23821 ms

现在:问题是当我部署相同的应用程序(使用文件。war)在同一个tomcat 7服务器/var/lib/tomcat 7/webapps
我可以打开我的初始网页,但没有数据,
我在日志中看到:

INFO: No Spring WebApplicationInitializer types detected on classpath

当我重新启动tomcat 7时,我在日志文件中得到:

INFO: Destroying ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:30 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:my_project' did not find a matching property.
Apr 8, 2014 3:25:30 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8888"]
Apr 8, 2014 3:25:31 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:31 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1664 ms
Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Apr 8, 2014 3:25:31 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8888"]
Apr 8, 2014 3:25:38 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8843"]
Apr 8, 2014 3:25:38 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 7576 ms
0md85ypi

0md85ypi1#

我发现了错误:我有一个使用jdk 1构建的库。6. Spring主控制器和组件都在这个库中。如何使用JDK 17、它找不到1中构建的类。6.
该解决方案全部使用“编译器遵从性级别:1.7”和“生成。类文件兼容性:1.6”、“源代码兼容性:1.6英寸
我在Eclipse中设置了这个选项:Preferences\Java\Compiler。

yqkkidmi

yqkkidmi2#

我愚蠢的理由是:* 自动生成 * 已禁用!

mqkwyuun

mqkwyuun3#

我在WebLogic服务器中部署带有spring integration beans的WAR时收到了这个信息消息“No Spring WebApplicationInitializer types detected on classpath”。实际上,我可以观察到servlet URL返回404 Not Found,并且在信息消息旁边带有否定语气“No Spring”。.. etc”,在我的spring配置中似乎没有其他错误;没有构建或部署错误,没有投诉。事实上,我怀疑豆子。xml(spring context XML)实际上根本没有被采用,这与Oracle的jDeveloper中非常具体的工件组织有关。解决方案是当你在项目属性中的“部署”主题下编辑你的部署配置文件时,小心地使用WEB-INF/classes类别的“贡献者”和“过滤器”。
准确地说,我建议您将spring上下文命名为jDeveloper默认值“beans”。xml”并将其并排放置到WEB-INF子目录本身(在Web应用程序源路径下,e.例如:您的项目路径〉/public_html/)。然后在WEB-INF/classes类别中(编辑部署概要文件时),您可以检查“contributor”列表中的Project HTML根目录,然后选择bean。xml中的过滤器,然后确保您的网站。xml提供了一个context-param值,如classpath:beans。xml文件。
一旦这个问题得到修复,我就可以继续进行了,在进行更多的bean配置更改和实现之后,消息“No SpringWebApplicationInitializer types detected on classpath”返回!其实,我并没有注意到它是什么时候回来的,为什么回来。第二次,我添加了一个

public class HttpGatewayInit implements WebApplicationInitializer { ... }

它实现了空的继承方法,整个应用程序工作正常!
如果你觉得Java EE开发已经变得有点太疯狂了,级联的XML配置文件(一些是手动编辑的,另一些是通过向导编辑的)由级联的变量初始化器解释,让我坚持我完全同意你的观点。

pkwftd7m

pkwftd7m4#

确保log4j配置正确,可能会抛出异常,但您只看到一半的画面。
请参见https://stackoverflow.com/a/16817018/1249304

hfyxw5xn

hfyxw5xn5#

我也有同样的问题。我的maven有tomcat7插件,但JRE环境是1。6.我把我的tomcat7改成了tomcat6,错误就没有了。

xqk2d5yq

xqk2d5yq6#

这是常见的错误,请确保您的文件。战争是正确的。打开就好。war文件,并检查WebApplicationInitializer是否存在。

zd287kbt

zd287kbt7#

我在java7应用程序中嵌入Tomcat 8时也遇到了类似的问题。
当我在我的应用程序中启动Tomcat时,它工作了。但是当我通过Maven启动它进行集成测试时,我得到了这个错误:“在classpath上未检测到Spring WebApplicationInitializer类型”。
我通过从版本8升级org.apache.tomcat.embed:tomcat-embed-*依赖项来修复它。0.29到8.0。47.

o2gm4chl

o2gm4chl8#

对于Eclipse用户:解决方案很简单,只需改变Spring Tools项目的性质-〉添加Spring项目的性质
好了。

j2datikz

j2datikz9#

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>          
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
 </plugin>

这是重要的插件,应该在pom。我花了两天时间调试和研究。这就是解决办法。这是Apache插件,告诉maven使用给定的编译器。

相关问题