gpt4 book ai didi

java - Sitemesh,无法构建工厂 : com. opensymphony.module.sitemesh.factory.DefaultFactory:

转载 作者:行者123 更新时间:2023-11-28 01:27:50 26 4
gpt4 key购买 nike

我在Spring中使用的是SiteMesh 2.4.2版本

<dependency>
<groupId>opensymphony</groupId>
<artifactId>sitemesh</artifactId>
<version>2.4.2</version>
</dependency>

我用名称 myApp.war 部署了我的应用程序,一切正常。我需要部署应用程序 myapp##versionApp.war 名称,这个名称会产生问题。

错误是

Cannot construct Factory : com.opensymphony.module.sitemesh.factory.DefaultFactory: com.opensymphony.module.sitemesh.factory.FactoryException: Could not read config file : /WEB-INF/sitemesh.xml: java.io.FileNotFoundException:

我发现在WEB-INF/目录/文件中存在sitemesh.xml。

你能帮帮我吗?

最佳答案

我们在 2.4 版本中有相同的内容

DefaultFactory 将尝试使用 ServletContext().getRealPath(),但最终会尝试从 contexPath 中读取。我认为这是一个错误。

要解决这个问题,您必须创建自己的工厂并将其设置在您的 web.xml 环境中

复制代码的 DefaultFactory

public class MyFactory extends com.opensymphony.module.sitemesh.factory.BaseFactory {

public MyFactory () {
// Do stuff
// delete every thing that sets the config path or simply set

String configFile = null;

// Do stuff
}
// Do other stuff
}

你的 web.xml 看起来像这样

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<env-entry>
<env-entry-name>sitemesh.factory</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>my.sitemesh.MyFactory</env-entry-value>
</env-entry>

关于java - Sitemesh,无法构建工厂 : com. opensymphony.module.sitemesh.factory.DefaultFactory:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31379089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com