【问题标题】:Unable to load configuration file in Java无法在 Java 中加载配置文件
【发布时间】:2013-11-30 21:53:46
【问题描述】:

我正在编写 JavaBrains 教程,完成课程后,Tomcat 说:

SEVERE: Exception starting filter struts2

还有:

Caused by: Unable to load configuration. - action - file:/Users/jasonrodriguez/Java/apache-tomcat-7.0.47/wtpwebapps/TutorialFinder/WEB-INF/classes/struts.xml:8:83

Caused by: Action class [org.koushik.javabrains.action.TutorialAction] not found - action - file:/Users/jasonrodriguez/Java/apache-tomcat-7.0.47/wtpwebapps/TutorialFinder/WEB-INF/classes/struts.xml:8:83

我回去检查,我的web.xml 有正确的过滤器映射:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>TutorialFinder</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>

      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
</web-app>

我的struts.xml 有命名空间、动作名称和类属性:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <package name="default" namespace="/tutorials" extends="struts-default">
        <action name="getTutorial" class="org.koushik.javabrains.action.TutorialAction">
            <result name="success">/success.jsp</result>
            <result name="failure">/error.jsp</result>
        </action>
    </package>
</struts>

我的库构建路径是正确的,但是当我运行 Tomcat 时,它告诉我资源不可用,由于我是新手,我不知道如何解决它,因为我的项目中没有红色 x 标记.我想也许某处有一个不合适的文件,但它看起来很直接:

也许一双新鲜的眼睛可以捕捉到我错过的东西。昨天我在本教程中遇到了类似的问题,解决方案是在我的操作标记中提供类路径中存在的类引用。但是,据我所知,该标签已经看起来正确。我的目标是让我创建并执行的业务服务。

【问题讨论】:

    标签: java eclipse tomcat configuration struts2


    【解决方案1】:

    你写错了包名:org.kouhsik.javabrains.action.TutorialAction 应该是org.koushik.javabrains.action.TutorialAction。可能只是拼写错误,或者您使用重构工具更改了包名称。无论哪种方式,您都应该使用它或者在配置中使用正确的引用来引用类标记中的操作。另一种方法是使用约定插件并通过注释创建配置。在这种情况下,您无需编写对操作或方法的引用,因为您在要配置的类或方法上放置了注释。

    【讨论】:

    • 我进行了更改,现在没有可见的错误,但是当我编译并运行应用程序时,它显示Unable to load configuration. - bean - jar:file:/Users/jasonrodriguez/Java/apache-tomcat-7.0.47/wtpwebapps/TutorialFinder/WEB-INF/lib/struts2-gxp-plugin-2.3.15.3.jar!/struts-plugin.xml:8:162,但我的库路径已连接到lib,就像它应该的那样,我有整个罐子库。我错过了什么吗?
    • 正如我在其他问题中评论的那样 - 删除它。
    • @JasonRodriguez 在每个 struts2 插件中都有一个 struts-plugin.xml,即使它与您的问题无关,我也会建议您按照 Lukasz Lenart 所说的将其从类路径配置和部署工件中删除。因为您可能没有在您的项目中使用 GXP,所以该插件是无用的,并且它会阻止您引导,因为它需要在与 GXP 相关的类路径上没有额外的引用,或者您不使用它们。
    【解决方案2】:

    我知道它非常尴尬的建议/解决方案,但这对我有用,我在共享 lib 目录中缺少 struts-spring-plugin.jar。它在我的类路径中,但不在共享库中。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2014-11-25
      • 2015-12-12
      • 2022-06-29
      • 1970-01-01
      相关资源
      最近更新 更多