首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WeldListener中捕获isHexDigit异常?

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

Stack Overflow用户
提问于 2013-10-29 17:37:17
回答 1查看 660关注 0票数 1

在某个地方,我收到了一些愚蠢且无效的got服务URL请求,比如

代码语言:javascript
复制
http://localhost:8080/WebApplication1/webresources/testme?stupidparameter=dyndcvgz/&%$\xa7edns

我的示例应用程序如下所示,使用Netbeans在glassfish 4.0和jdk1.7u40上构建

代码语言:javascript
复制
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获得IllegalStateException: isHexDigit。如何避免或处理此异常?

EN

回答 1

Stack Overflow用户

发布于 2013-12-12 23:54:38

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19654462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档