首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >p:imageCropper仅在FireFox上导致"java.io.CharConversionException:无效的URI字符编码“

p:imageCropper仅在FireFox上导致"java.io.CharConversionException:无效的URI字符编码“
EN

Stack Overflow用户
提问于 2015-06-01 20:42:30
回答 1查看 1.1K关注 0票数 0

我有下面的图片裁剪器:

代码语言:javascript
复制
<h:form>
    <p:imageCropper id="imageDialog" 
                    value="#{petForm.croppedImage}" 
                    image="#{petForm.uploadedFilename}" 
                    maxSize="#{petForm.width},#{petForm.height}" 
                    minSize="#{petForm.width},#{petForm.height}" />
</h:form>

在Chrome和Opera中一切运行正常。然而,当我使用FireFox时,我在我的GlassFish 4.0服务器上得到了以下异常:

代码语言:javascript
复制
java.io.CharConversionException: Invalid URI character encoding
    at org.glassfish.grizzly.http.util.HttpRequestURIDecoder.decode(HttpRequestURIDecoder.java:163)
    at org.glassfish.grizzly.http.util.RequestURIRef.getDecodedRequestURIBC(RequestURIRef.java:133)
    at org.glassfish.grizzly.http.util.RequestURIRef.getDecodedRequestURIBC(RequestURIRef.java:114)
    at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:493)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:353)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

这是如何引起的,我如何解决它?

EN

回答 1

Stack Overflow用户

发布于 2015-06-01 22:23:49

我已经解决了。到目前为止,在我的问题中提供的信息中看不到原因。我使用反斜杠\作为图像URI,基本上如下所示:

代码语言:javascript
复制
<p:imageCropper value="\resources\image.jpg" />

似乎Chrome和Opera会悄悄地将反斜杠\切换为斜杠/,并获得正确的资源。FireFox没有这样做,在下载图像时仍然使用反斜杠。

在我像下面这样更改了图像URI之后,一切都运行得很好。

代码语言:javascript
复制
<p:imageCropper value="/resources/image.jpg" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30573783

复制
相关文章

相似问题

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