hi all,
I have been trying to get LAMS2.0.2 and Sakai2.3.1 talking but it just isn't happening.
LAMS is working fine - installed on a RHEL4 server, Sakai is working fine - on another RHEL4 server.
After all the steps to integrate the two together, I go to "http://<mysakai_server>/mercury/" and login as admin, then go back to sakai.lamstwo via the mercury page, i could see the admin menu on the top, then clicking "New Lesson", and "Open Author" on the following page, i get an error like:
HTTP Status 502 - Login Failed - failed to fetch user info from the third party server
--------------------------------------------------------------------------------
type: Status report
message: Login Failed - failed to fetch user info from the third party server
description: This server received an invalid response from a server it consulted when acting as a proxy
or gateway (Login Failed - failed to fetch user info from the third party server).
--------------------------------------------------------------------------------
Apache Tomcat/5.5.9
My Environment:
Main Software
In the LAMS side:
jdk-1.5
mysql-5.0.18
jboss-4.0.2
lams_2.0-unix-beta.tar.gz
lams-unix-updater-2.0.2.tar.gz
On the SAKAI side:
jdk-1.5
mysql-5.0.18
tomcat-5.5.17
sakai-src_2-3-1.tar.gz
sakai-lamstwo.zip
Hardware
Lams2.0.2 and Sakai2.3.1 are installed on two separate physical machines, both are RHEL4.
Network
Lams2.0.2 ip: 172.16.129.210 port:8080
sakai231 ip: 172.16.129.211 port:8080
the firewall on both servers are disabled.
My Configration:
follow the page at http://wiki.lamsfoundation.org/display/lamsdocs/LAMS+v2.0+Integration+Setup+Step-by-Step+Guide
In the LAMS side:
1. login in LAMS as a sysadmin.
2. Select the "Sys Admin" link.
3. Select "Maintain Integrated Servers".
4. Setup the fields as:
Id: sakai
Key: sakai
Name: sakai
Description: sakai
Prefix: sk
Organisation: create new one(sakailams)
User Information URL: http://172.16.129.211:8080/sakai-lamstwo-tool/servlet/UserDataServlet?uid=%username%&ts=%timestamp%&hash=%hash%
Timeout URL: http://dummy.url/not.implemented
On the SAKAI side:
Add the following in sakai.properties:
lamstwo.serverId=sakai
lamstwo.serverKey=sakai
lamstwo.serverAddr=http://172.16.129.210:8080/lams/
lamstwo.requestSrc=Sakai
It appears that possibly the dynamic provisioning isn't working in one form or another? The username being used by Sakai actually exists within LAMS as i then put in the username to provide static provisioning - still no change
when click "new lesson"
in the Lams side, the error info from jboss as:
21:33:12,847 DEBUG [SingleSignOn] Process request for'/lams//services/LearningDesignRepositoryService'
21:33:12,847 DEBUG [SingleSignOn] Checking for SSO cookie
21:33:12,847 DEBUG [SingleSignOn] SSO cookie is not present
21:33:12,848 DEBUG [CustomizedOpenSessionInViewFilter] Using SessionFactory 'coreSessionFactory' for OpenSessionInViewFilter
21:33:12,848 DEBUG [CustomizedOpenSessionInViewFilter] Opening single Hibernate Session in OpenSessionInViewFilter
21:33:12,873 DEBUG [IntegrationService] http://172.16.129.211:8080/sakai-lamstwo-tool/servlet/UserDataServlet?uid=403c8370-f683-4382-00b3-d10e2e3667d3&ts=1178847192873&hash=17a43c80d0e23e509f4d3d8321a5e11df93ce184
21:33:12,900 DEBUG [LearningDesignRepositorySoapBindingImpl] Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401
org.lamsfoundation.lams.integration.UserInfoFetchException: Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401
at org.lamsfoundation.lams.integration.service.IntegrationService.getUserDataFromExtServer(IntegrationService.java:239)
at org.lamsfoundation.lams.integration.service.IntegrationService.createExtUserUseridMap(IntegrationService.java:177)
at org.lamsfoundation.lams.integration.service.IntegrationService.getExtUserUseridMap(IntegrationService.java:130)
at org.lamsfoundation.lams.integration.service.IntegrationService$$FastClassByCGLIB$$24924e31.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:685)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
at org.lamsfoundation.lams.integration.service.IntegrationService$$EnhancerByCGLIB$$281dd714_2.getExtUserUseridMap(<generated>)
at org.lamsfoundation.lams.webservice.LearningDesignRepositorySoapBindingImpl.getLearningDesigns(LearningDesignRepositorySoapBindingImpl.java:161)
at org.lamsfoundation.lams.webservice.LearningDesignRepositorySoapBindingSkeleton.getLearningDesigns(LearningDesignRepositorySoapBindingSkeleton.java:115)
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:585)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.lamsfoundation.lams.integration.security.SingleSignOn.invoke(SingleSignOn.java:89)
at org.lamsfoundation.lams.integration.security.LoginRequestValve.invoke(LoginRequestValve.java:67)
at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:481)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
21:33:12,905 DEBUG [CustomizedOpenSessionInViewFilter] Closing single Hibernate Session in OpenSessionInViewFilter
on the Sakai side the error info from tomcat as:
ERROR: Unable to retrieve user data: missing expected parameters (2007-05-11 09:11:28,352 http-8080-Processor22_org.lamsfoundation.lams.integrations.sakai.tool.servlet.UserDataServlet)
ERROR: Unable to retrieve learning designs from LAMS, RMI Remote Exception (2007-05-11 09:11:28,394 http-8080-Processor23_org.lamsfoundation.lams.integrations.sakai.logic.impl.LamstwoLogicImpl)
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.rmi.RemoteException: Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401; nested exception is:
org.lamsfoundation.lams.integration.UserInfoFetchException: Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:lams
java.rmi.RemoteException: Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401; nested exception is:
org.lamsfoundation.lams.integration.UserInfoFetchException: Fail to fetch user data from external server:sakai - Unexpected return HTTP Status:401
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.lamsfoundation.lams.webservice.LearningDesignRepositorySoapBindingStub.getLearningDesigns(LearningDesignRepositorySoapBindingStub.java:128)
at org.lamsfoundation.lams.integrations.sakai.logic.impl.LamstwoLogicImpl.getLearningDesigns(LamstwoLogicImpl.java:355)
at org.lamsfoundation.lams.integrations.sakai.tool.jsf.LamstwoBean.processActionNew(LamstwoBean.java:273)
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:585)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
at javax.faces.component.UICommand.broadcast(UICommand.java:106)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164)
at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:501)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.sakaiproject.jsf.util.JsfTool.dispatch(JsfTool.java:221)
at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
any ideas?
Thanks for the reply, Any help would be appreciated.
Posted by sun jw