已在this SO post中详细介绍我使用h:outputLink
成功创建了of:graphicImageURL('imageBean.getFirstImage(Long id, boolean thumbnail)')
。这在我的本地机器上工作正常。但是,当我将其部署在我的一个生产服务器上时(软件的两个实例,两者共享完全相同的Java代码,在服务器A上运行完全正常但在服务器B上运行不正常),它会引发以下异常:
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.omnifaces.resourcehandler.GraphicResource.getInputStream(GraphicResource.java:259)
at com.sun.faces.application.resource.ResourceHandlerImpl.handleResourceRequest(ResourceHandlerImpl.java:335)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at org.primefaces.application.resource.PrimeResourceHandler.handleResourceRequest(PrimeResourceHandler.java:87)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.application.ResourceHandlerWrapper.handleResourceRequest(ResourceHandlerWrapper.java:153)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:655)
... 32 more
为了使它更奇怪,将方法更改为imageBean.getImage(Long id, int index, Boolean thumbnail)
后,它工作正常。 (索引参数指示要检索的图片阵列的哪个图片)。 BalusC在评论中提到它可能是由于/WEB-INF/lib
- 文件夹中的同意库,所以这里是:
作为应用程序服务器,我正在使用Wildfly 9.0.2。令我感到困惑的是,软件的两个实例共享相同的代码库并具有相同的设置,但是当它在服务器A(以及我的本地机器上)上工作时,它不在服务器B上。任何线索?