Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在WeldListener中捕获isHexDigit异常?_Java_Glassfish_Illegalstateexception - Fatal编程技术网

Java 如何在WeldListener中捕获isHexDigit异常?

Java 如何在WeldListener中捕获isHexDigit异常?,java,glassfish,illegalstateexception,Java,Glassfish,Illegalstateexception,从某个地方,我收到了一些愚蠢而无效的Web服务URL请求,比如 http://localhost:8080/WebApplication1/webresources/testme?stupidparameter=dyndcvgz/&%$\xa7edns 我的示例应用程序如下所示,在glassfish 4.0和jdk1.7u40上使用Netbeans构建 package WebApplication1; import javax.ejb.Stateless; import javax.

从某个地方,我收到了一些愚蠢而无效的Web服务URL请求,比如

http://localhost:8080/WebApplication1/webresources/testme?stupidparameter=dyndcvgz/&%$\xa7edns
我的示例应用程序如下所示,在glassfish 4.0和jdk1.7u40上使用Netbeans构建

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;
    }
}

对于给定的测试url,我总是从org.jboss.weld.servlet.WeldListener获得非法状态异常:isHexDigit。如何避免或处理此异常?

这似乎是Glassfish的一个问题,它处理带有特殊字符的参数的方式

在将来的版本中解决该问题之前,您可以尝试将参数编码为base64,并在
getXml()
中收到参数时将其解码回来。这将避免相关的特殊字符通过抛出异常的glassfish内部的逻辑