远程支持建设部新需求的团队可能是由于项目紧张,而后期测试跟不上,而项目到我所在的在京团队中做环境支持部署后,功能性测试时发现,首页门户新闻图片无法加载。推测其原因很简单,同上面附件下载有问题很类似,要么是上传出问题,要么是读取图片问题,查找日志发现问题出现在图片的上传和读取都会产生问题,而根本原因在于图片是存储在本地的,而不是以document形式保存在FileNet上,并且上传和读取时都无法找到图片目录。日志如下所示:
[DEBUG] 2012/06/27 16:20:19.515 - HTTP Session @ SessionContextUtils.getSubject() : org.apache.catalina.session.StandardSessionFacade@426e05
java.io.FileNotFoundException: C:\WORKPLACE_FLEX\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ec\AppSrv02\installedApps\FNServerNode02Cell\ec.ear\ec.war\cache\constructionInfoPic\c12ded20bdca450986b4fcc4b549bf8d.jpg (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at com.ibm.rise.vo.ConstructionInfoVo.downloadPic(ConstructionInfoVo.java:104)
at com.ibm.rise.vo.ConstructionInfoVo.<init>(ConstructionInfoVo.java:58)
at com.ibm.rise.workplace.construction.ConstructionInfoService.queryImgInfoData(ConstructionInfoService.java:90)
at com.ibm.rise.workplace.construction.ConstructionInfoService$$FastClassByCGLIB$$c93c768f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at com.ibm.rise.workplace.construction.ConstructionInfoService$$EnhancerByCGLIB$$9aec512.queryImgInfoData(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.ibm.rise.util.ContainBaseFilter.doFilter(ContainBaseFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.ibm.rise.util.UTF8Filter.doFilter(UTF8Filter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
java.io.FileNotFoundException: C:\WORKPLACE_FLEX\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ec\AppSrv02\installedApps\FNServerNode02Cell\ec.ear\ec.war\cache\constructionInfoPic\0775d8982ba446dd9e73ac2557a67475.jpg (系统找不到指定的路径。)
该问题解决方法:
要在
C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\installedApps\FNServerNode02Cell\ECM.ear\ECM.war\cache
下有constructionInfoPic
同时在CNOOC_Config.properties中,指定
supply_path=AppSrv01/installedApps/gcjsb-webNode01Cell/ec.ear/ec.war/
问题自身不难,但它暴露的是远程开发和本地环境支持人员的配合问题,后者不可能完全理解前者的思路,更何况时间较紧张,而管理者在远程开发团队与本地环境支持团队的协调和规范制定的作用是不容小觑的。