2014-09-17 3 views
0

Я пытаюсь использовать wildfly 8.1.0 для развертывания jsf2.2.
Я просто развернуть простой HelloWorld, который порожденная Netbeans7.4 в то время как я создаю новый проект JSF, но всякий раз, когда я посещаю http://localhost:8080/Helloworld/, он говорит мне, чтоWildfly8.1.0 deploy jsf2.2 - имя файла cookie - зарезервированный токен

java.lang.IllegalArgumentException: имя Cookie «tocTree_ref -topic-группа: реф-групповые заявки: реф-appeditText-привет»является зарезервированным маркер

есть ли что-то мне нужно конфиг, прежде чем развернуть JSF в wildfly8.1.0?
Вот мой полный трассировки стека:

11:27:17,978 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "Helloworld.war" (runtime-name: "Helloworld.war") 
11:27:18,500 INFO [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-7) 正在初始化環境「/Helloworld」的 Mojarra 2.2.6-jbossorg-4 20140501-1134 
11:27:19,477 INFO [org.wildfly.extension.undertow] (MSC service thread 1-7) JBAS017534: Registered web context: /Helloworld 
11:27:19,530 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "Helloworld.war" (runtime-name : "Helloworld.war") 
11:27:38,347 FATAL [javax.enterprise.resource.webcontainer.jsf.context] (default task-1) JSF1073:在 RESTORE_VIEW 1 的處理期間截獲 java.lang.IllegalArgumentException:UIComponent-ClientId=,訊息=Cookie name "tocTree_ref-topic-group:ref-group-applications:ref-appeditText-hi" is a reserved token 
11:27:38,362 FATAL [javax.enterprise.resource.webcontainer.jsf.context] (default task-1) Cookie name "tocTree_ref-topic-group:ref-group-applications:ref-appeditText-hi" is a reserved token: java.lang.IllegalArgumentException: Cookie name "tocTree_ref-topic-group:ref-group-applications:ref-appeditText-hi" is a reserved token 
    at javax.servlet.http.Cookie.<init>(Cookie.java:192) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] 
    at io.undertow.servlet.spec.HttpServletRequestImpl.getCookies(HttpServletRequestImpl.java:145) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at com.sun.faces.context.RequestCookieMap.get(RequestCookieMap.java:79) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at java.util.Collections$UnmodifiableMap.get(Collections.java:1339) [rt.jar:1.7.0_40] 
    at com.sun.faces.context.flash.ELFlash.getCookie(ELFlash.java:956) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at com.sun.faces.context.flash.ELFlash.doPrePhaseActions(ELFlash.java:581) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:215) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) [jsf-impl-2.2.6-jbossorg-4.jar:] 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) [jboss-jsf-api_2.2_spec-2.2.6.jar:2.2.6] 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 

    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) [undertow-core-1.0.15.Final.jar:1.0.15.Final] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_40] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_40] 
    at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_40] 

P.S.
Я создаю проект jsf с Netbeans7.4 и просто скопирую .war в wildfly-8.1.0.Final\standalone\deployments, которые успешно развертывают проект. Ошибка отображается после посещения URL.

ответ

1

Ответ на вопрос: Cookie javadoc. От constructor (ссылки):

Название должно соответствовать RFC 2109. Тем не менее, поставщики могут предоставить опцию конфигурации, которая позволяет принимать имена файлов cookie, соответствующие оригиналу Netscape Cookie Specification.

Из setValue() method, который является немного более информативными разрешенным символов:

С версии 0 печеньем, значения не должны содержать пробелы, скобки, знак равенства, запятые, двойные кавычки, косые черты, вопросительные знаки, знаки, двоеточия и точки с запятой. Пустые значения могут не совпадать со всеми браузерами.

В вашем конкретном случае двоеточия вызывают проблемы. Один из способов действительно игнорирует применение RFC2109. Однако вы должны понимать, что в настоящее время они не поддерживаются браузерами MSIE. Он вернет значение cookie с кавычками и обработает их как файлы cookie сеанса. См. Также Why do cookie values with whitespace arrive at the client side with quotes?

+0

Спасибо @BalusC. Вы упомянули (по ссылке), нам нужно кодировать URL-адрес, если мы хотим также поддерживать MSIE. Тем не менее, я попробовал свой проект Helloworld с MSIE, и он работает, вы знаете, почему? (Я не кодировал URL-адреса) – nosnhoj

0

По this page я гугле, я добавил свойство системы, и она работает:

org.glassfish.web.rfc2109_cookie_names_enforced = ложь

Однако, я понятия не имею, что это на самом деле решение или просто обходной путь.

Просто оставьте ссылку и введите ее имя для тех, кто в ней нуждается.