将Struts2,Hibernate与Enterprise应用程序集成时发生JasperException - java

我有一个用Struts2,Hibernate构建的Web应用程序,并且运行良好。

我在NetBean中创建一个新的Enterprise应用程序。我构建的Web应用程序已作为Java EE模块添加到企业应用程序中。我已经选择客户端模块作为Web应用程序,并尝试运行企业应用程序。

但是,Web应用程序无法正常工作。告诉我

org.apache.jasper.JasperException: The Struts dispatcher cannot be found.  

This is usually caused by using Struts tags without the associated filter. 

Struts tags are only usable when the request has passed through its servlet filter, 

which initializes the Struts dispatcher needed for this tag. - [unknown location]

Web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

一旦我从企业应用程序中删除Web应用程序并进行清理和构建。 Web应用程序是可行的。

补充:

如下图所示,我已在企业应用程序中添加了库,并更改了filter。但是仍然会发生错误。

参考方案

将Web应用程序作为Enterprise Application作为JavaEE模块正确添加时,请检查是否已配置了buildpath / classpath。可能存在一些未解决的依赖项,因此找不到Struts调度程序。

注意:从Struts版本2.1.3开始不推荐使用FilterDispatcher过滤器。如果您正在使用最新版本的Struts2(> 2.1.3),请使用

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

代替。
而且,由于您正在获取JasperException。您需要了解几件事导致此异常的原因:

每当您错过标签或未正确关闭标签时都会发生
当您使用Jasper引擎未解析JSP时,它将引发jasper Exception。
意思是如果您编写的jsp代码不正确,并且在jsp中放置了任何不可用的资源,那么我们将收到Jasper Exception
以下原因可能必须获取jasper Exception。

1.构建路径中缺少1.jsp-api.jar。

Jsp代码编写不正确。

Java中的“ <<”运算符 - java

最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…

JAVA:如何检查对象数组中的所有对象是否都是子类的对象? - java

我有一个对象数组。现在,我要检查所有这些对象是否都是MyObject的实例。有没有比这更好的选择:boolean check = true; for (Object o : justAList){ if (!(o instanceof MyObject)){ check = false; break; } } java大神给出的解决方案 如果您不喜欢循环,则…

展平地图中的列表列表 - java

我有订单流(来源是订单列表)。每个订单都有一个客户和一个OrderLine列表。我要实现的目标是在一张简单的列表中以客户为关键的地图,并将属于该客户的所有订单行作为值。现在,通过执行以下操作,我现在管理的内容返回了Map<Customer>, List<Set<OrderLine>>>:orders .collect…

无法从ArrayList <String>转换为List <Comparable> - java

当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…