2013-10-29 1 views
1

나는 글래스 피쉬 4.0WeldListener에서 isHexDigit 예외를 잡는 방법? 어딘가에서

package WebApplication1; 

import javax.ejb.Stateless; 
import javax.ws.rs.Path; 
import javax.ws.rs.GET; 
import javax.ws.rs.Produces; 
import javax.ws.rs.QueryParam; 

@Stateless 
@Path("/testme") 
public class NewSessionBean { 
    /** 
    * http://localhost:8080/WebApplication1/webresources/testme?stupidparameter=dyndcvgz/&%$\xa7edns 
    * 
    * @param stupidparameter 
    * @return 
    */ 
    @GET 
    @Produces("text/plain") 
    public String getXml(
      @QueryParam("stupidparameter") String stupidparameter) { 
     System.out.println("stupidparameter = " + stupidparameter); 

     return "got " + stupidparameter; 
    } 
} 

와와 jdk1.7u40에 넷빈즈 빌드,

내 샘플 응용 프로그램은 다음과 같습니다
http://localhost:8080/WebApplication1/webresources/testme?stupidparameter=dyndcvgz/&%$\xa7edns 

처럼 Webservice를 몇 가지 어리 석고 잘못된 URL 요청을 받았습니다 주어진 테스트 url 나는 항상 IllegalStateException : isHexDigit from org.jboss.weld.servlet.WeldListener. 이 예외를 피하거나 처리하려면 어떻게해야합니까?

답변

0

글래스 피시의 문제인 것 같습니다. 특수 문자가있는 매개 변수를 처리하는 방식입니다.

https://java.net/jira/browse/GRIZZLY-1538

문제가 향후 릴리스에서 해결 될 때까지, 당신은 64 기수로 매개 변수를 인코딩하고 있었던 파라미터가 getXml() 내부에 수신 될 때 그것을 다시 디코딩을 시도 할 수 있습니다. 이렇게하면 관련된 특수 문자가 예외가 발생하는 glassfish 내부의 로직을 통과하는 것을 피할 수 있습니다.