原因:java.lang.IllegalArgumentException:无效 [[Faces Servlet]在过滤器映射中

问题描述 投票:-3回答:1

[Estou criando um filtro para o gerenciamento de meu enitityManager na minhaaplicação,porémestou recebendo este erro:

Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [Faces Servlet] in filter mapping at org.apache.catalina.core.StandardContext.validateFilterMap(StandardContext.java:3025) at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2971) at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1289) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1169) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:775) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5051) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 27 more

quando defino @WebFilter("Faces Servlet")类JPAFilter.Troquei por @WebFilter(“。xhtml”),massityentityManager可以转换为banco。Minha类JPAFilter:

`package br.faraway.nicholas.filters;

import java.io.IOException;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

/**
 * Servlet Filter implementation class JPAFilter
 */
@WebFilter("Faces Servlet")
public class JPAFilter implements Filter {

    private EntityManagerFactory entityManagerFactory;

    private String persistence_unit_name = "comex-pu";

    public JPAFilter() {

    }

    public void destroy() {

        this.entityManagerFactory.close();
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        EntityManager entityManager = this.entityManagerFactory.createEntityManager();


        request.setAttribute("entityManager", entityManager);


        entityManager.getTransaction().begin();


        chain.doFilter(request, response);

        try {


            entityManager.getTransaction().commit();

        } catch (Exception e) {


            entityManager.getTransaction().rollback();
        } finally {
            System.out.println("Finalyu");

            entityManager.close();
        }
    }

    public void init(FilterConfig fConfig) throws ServletException {

        this.entityManagerFactory = Persistence.createEntityManagerFactory(this.persistence_unit_name);
    }

MEU 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"
    version="3.0">
    <welcome-file-list>
        <welcome-file>pages/secured/redireciona.html</welcome-file>
    </welcome-file-list>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>california-#{guestPreferences.theme}</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/primefaces-california.taglib.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <mime-mapping>
        <extension>ttf</extension>
        <mime-type>application/font-sfnt</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>woff</extension>
        <mime-type>application/font-woff</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>woff2</extension>
        <mime-type>application/font-woff2</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>eot</extension>
        <mime-type>application/vnd.ms-fontobject</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>eot?#iefix</extension>
        <mime-type>application/vnd.ms-fontobject</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exosemibold</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exobolditalic</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exomedium</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#exoregular</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>svg#fontawesomeregular</extension>
        <mime-type>image/svg+xml</mime-type>
    </mime-mapping>
    <filter>
        <filter-name>PageFilter</filter-name>
        <filter-class>br.faraway.nicholas.filters.PageFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>PageFilter</filter-name>
        <url-pattern>/pages/secured/restricted/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <listener>
        <listener-class>br.faraway.nicholas.filters.SessionListner</listener-class>
    </listener>
    <context-param>
        <param-name>javax.faces.FACELETS_SKIP_COMMENTS</param-name>
        <param-value>true</param-value>
    </context-param>

</web-app>
java jpa servlets java-ee
1个回答
0
投票

错误说:非法。因此,不允许使用带空格的名称。从以下位置更改过滤器中的映射和符号:

© www.soinside.com 2019 - 2024. All rights reserved.