2011-07-04 5 views
0

JSF2.0을 사용하고 최대 절전 모드로 간단한 데모 웹 애플리케이션을 개발했습니다. 이 webapp는 IBM FileNet 4.5.1을 사용하여 업로드 된 파일을 저장하고 검색합니다. 이 webapp를 JBoss 6.0에 배포하면 모든 것이 잘 동작합니다. 그러나 고객이 평가를 위해 JBoss 4.2.3에 배포하도록 요청하고 ... 작동하지 않습니다. IBM Filenet에 액세스하려고하면 스택 추적이 발생합니다.jboss 4.2.3 IBM Filenet을 연결하는 애플리케이션

17:32:47,353 INFO [STDOUT] 17:32:47,353 DEBUG JaasConfiguration:60 - Default JAAS Configuration: 
HttpCredentials { 
    com.idoox.security.jaas.HttpLoginModule required; 
} 

FileNetP8Engine { 
    com.filenet.api.authentication.jboss.login.FnClientLoginModule required; 
} 

FCLMStackingHelper { 
    org.jboss.security.ClientLoginModule required; 
} 

NameMapping { 
    com.idoox.security.jaas.NameLoginModuleNoAuth required; 
} 

Credentials { 
    com.idoox.security.jaas.GSSLoginModule required; 
} 

KrbCredentials { 
    com.sun.security.auth.module.Krb5LoginModule required; 
} 

NamePasswordAN { 
    com.idoox.security.jaas.NamePasswordLoginModule required; 
} 

CertsMapping { 
    com.idoox.security.jaas.CertsLoginModule required; 
} 

CachedKrbCredentials { 
    com.sun.security.auth.module.Krb5LoginModule required; 
} 

NamePasswordNoAN { 
    com.idoox.security.jaas.NamePasswordLoginModuleNoAuth required; 
} 

FileNetP8WSI { 
    com.filenet.api.util.WSILoginModule required; 
} 

FileNetP8 { 
    com.filenet.api.authentication.jboss.login.FnClientLoginModule required; 
} 

ReceivedCredentials { 
    com.idoox.security.jaas.GSSLoginModuleNoAuth required; 
} 

FileNetP8Server { 
    com.filenet.api.authentication.jboss.login.FnClientLoginModule required; 
} 

HttpRequest { 
    com.idoox.security.jaas.SmLoginModule required; 
} 

FileNetP8KerberosService { 
    com.filenet.api.authentication.jboss.login.FnClientLoginModule required; 
} 

NameDigestAN { 
    com.idoox.security.jaas.NameDigestLoginModule required; 
} 

17:32:47,355 INFO [STDOUT] 17:32:47,355 DEBUG JaasConfiguration:206 - Configured JAAS entry found (Default not used) for: 'FileNetP8WSI'  org.jboss.security.auth.spi.UsersRolesLoginModule required; 
17:32:47,367 ERROR [UsersRolesLoginModule] Failed to load users/passwords/role files 
java.io.IOException: No properties file: users.properties or defaults: defaultUsers.properties found 
    at org.jboss.security.auth.spi.Util.loadProperties(Util.java:315) 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.loadUsers(UsersRolesLoginModule.java:186) 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.createUsers(UsersRolesLoginModule.java:200) 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.initialize(UsersRolesLoginModule.java:127) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:756) 
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) 
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) 
    at javax.security.auth.login.LoginContext.login(LoginContext.java:579) 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:112) 
    at com.filenet.api.util.UserContext.createSubject(UserContext.java:240) 
    at alekso.filenet.ce.CEConnection.establishConnection(CEConnection.java:59) 
    at alekso.filenet.ce.WSIConnector.GetDocument(WSIConnector.java:89) 
    at Alekso.BasDemo.DAL.FileNetProxy.retrieveFile(FileNetProxy.java:43) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doDownload(DownloadServlet.java:67) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doGet(DownloadServlet.java:42) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    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:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
    at java.lang.Thread.run(Thread.java:595) 
17:32:47,417 INFO [STDOUT] 17:32:47,416 DEBUG EngineRuntimeException:207 - com.filenet.api.exception.EngineRuntimeException: E_NOT_AUTHENTICATED: The user is not authenticated. 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:127) 
    at com.filenet.api.util.UserContext.createSubject(UserContext.java:240) 
    at alekso.filenet.ce.CEConnection.establishConnection(CEConnection.java:59) 
    at alekso.filenet.ce.WSIConnector.GetDocument(WSIConnector.java:89) 
    at Alekso.BasDemo.DAL.FileNetProxy.retrieveFile(FileNetProxy.java:43) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doDownload(DownloadServlet.java:67) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doGet(DownloadServlet.java:42) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    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:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
    at java.lang.Thread.run(Thread.java:595) 
Caused by: javax.security.auth.login.LoginException: Missing users.properties file. 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.login(UsersRolesLoginModule.java:148) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) 
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) 
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) 
    at javax.security.auth.login.LoginContext.login(LoginContext.java:579) 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:112) 
    ... 26 more 
17:32:47,421 INFO [STDOUT] 17:32:47,419 ERROR WSIConnector:100 - Errore nel documento con id {BDFCA4F2-B8C7-44EA-9481-4628C26A9DD5} 
com.filenet.api.exception.EngineRuntimeException: E_NOT_AUTHENTICATED: The user is not authenticated. 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:127) 
    at com.filenet.api.util.UserContext.createSubject(UserContext.java:240) 
    at alekso.filenet.ce.CEConnection.establishConnection(CEConnection.java:59) 
    at alekso.filenet.ce.WSIConnector.GetDocument(WSIConnector.java:89) 
    at Alekso.BasDemo.DAL.FileNetProxy.retrieveFile(FileNetProxy.java:43) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doDownload(DownloadServlet.java:67) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doGet(DownloadServlet.java:42) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    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:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
    at java.lang.Thread.run(Thread.java:595) 
Caused by: javax.security.auth.login.LoginException: Missing users.properties file. 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.login(UsersRolesLoginModule.java:148) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) 
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) 
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) 
    at javax.security.auth.login.LoginContext.login(LoginContext.java:579) 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:112) 
    ... 26 more 
17:32:47,421 INFO [STDOUT] 17:32:47,421 ERROR DownloadServlet:89 - Impossibile recuperare il file allegato 
com.filenet.api.exception.EngineRuntimeException: E_NOT_AUTHENTICATED: The user is not authenticated. 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:127) 
    at com.filenet.api.util.UserContext.createSubject(UserContext.java:240) 
    at alekso.filenet.ce.CEConnection.establishConnection(CEConnection.java:59) 
    at alekso.filenet.ce.WSIConnector.GetDocument(WSIConnector.java:89) 
    at Alekso.BasDemo.DAL.FileNetProxy.retrieveFile(FileNetProxy.java:43) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doDownload(DownloadServlet.java:67) 
    at Alekso.BasDemo.Servlet.DownloadServlet.doGet(DownloadServlet.java:42) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
    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:230) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
    at java.lang.Thread.run(Thread.java:595) 
Caused by: javax.security.auth.login.LoginException: Missing users.properties file. 
    at org.jboss.security.auth.spi.UsersRolesLoginModule.login(UsersRolesLoginModule.java:148) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:592) 
    at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) 
    at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) 
    at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) 
    at javax.security.auth.login.LoginContext.login(LoginContext.java:579) 
    at com.filenet.apiimpl.core.UserPasswordToken.getSubject(UserPasswordToken.java:112) 
    ... 26 more 

누군가가 솔루션을 제안 할 수 있습니까? 스택 트레이스는 users.properties 파일에 대해 이야기하지만 JBoss 6.0에는 포함되어 있지 않습니다. JBoss 4.2.3이 작동하도록하기 위해 정말로 하나를 생성해야한다면, 무엇을 넣어야합니까? 내 코드에서 FileNet에 대한 연결을 구성하고 다른 곳에서 매개 변수를 읽는 중 ... jboss 4.2.3과 jboss 6.0의 차이점은 이러한 문제를 일으키는 것입니까?

+0

JBoss 4.2는 JSF 2를 지원하지 않습니다. 문제의 근본 원인 일 수 있습니다. – skaffman

+0

@skaffman : 적절한 mojarra 라이브러리를 추가했는데 모든 것이 잘 작동합니다. 파일 시스템을 파일 저장 장소로 사용하는 다른 저장소 계층을 사용하면 모든 것이 정상적으로 작동하므로 JSF에서는 문제가 발생하지 않습니다. – themarcuz

답변

1

해결! 그것은 어리석은 실수였습니다. 파일 로그인-config.xml 파일에서 당신은 작업 파일 네트와의 통신 위해서는이

<application-policy name="FileNetP8WSI"> 
    <authentication> 
     <login-module code="com.filenet.api.util.WSILoginModule" flag="required"/> 
    </authentication> 
</application-policy> 

를 추가해야합니다. 잘못 입력했기 때문에 작동하지 않습니다.

0

어떤 전송 프로토콜을 사용하고 있습니까? IIOP 또는 WSI? WSI를 사용한다면 이론적으로 앱이 작동해야합니다. CE는 Jboss 6.0 인스턴스에서 호스팅됩니다.

여러분이 IIOP 전송 프로토콜을 사용하고 있다고 가정합니다. 이 경우 클라이언트 응용 프로그램은 서버 응용 프로그램과 동일한 J2EE 라이브러리를 가져야합니다. 이전에는 Jboss에서 FileNet 클라이언트를 작성한 적이 없지만 WebLogic 또는 WAS를 사용하면 서버에서와 동일한 클라이언트 버전의 .jar 파일이 필요합니다. 예를 들어 웹 로직 시스템에서 호스팅되는 CE와 통신하는 클라이언트를 작성하는 경우 서버에서 호스팅되는 것과 동일한 버전의 weblogic.jar을 클라이언트에서 사용해야합니다.

CE와는 다른 버전의 Jboss에서 실행되는 클라이언트를 작성할 수 있지만 WSI 전송 프로토콜을 사용해야합니다. 좋은 소식은 코드를 변경할 필요가 없다는 것입니다. IIOP 대신 WSI를 사용하도록 구성을 변경하기 만하면됩니다.

관련 문제