Kenexa LCMS 8.2 content to Moodle LMS via AICC URL - moodle

Before I begin, I'd like to appologise for any improper terminology. I am in a jack-of-all-trades position right now and LCMS/LMS systems are not my primary focus typically.
Goal:
Create content that is stored and edited in Kenexa (Formerly Outstart) LCMS and is accessed via AICC URL in the Moodle LMS. This is important to us because we'd like to have the content in a central repository (the LCMS), where changes can be made to the content and instantly applied to the LMS(s).
Problem:
Unable to connect to LCMS content using an AICC URL (generated by the LCMS) using Moodle LMS. When connecting, I receive this error:
AICC HACP Entry Point Error
AICCException : The callback to the LMS failed with http status code (404)
When creating the AICC URL, the LCMS will present an error if I supply an invalid or unreachable URL for my LMS. In this case, the LCMS can "see" the LMS, as far as I can tell.
Details:
The LCMS uses an editable XML file when publishing the AICC URL and content. That file looks like this:
<publish_configuration>
<destination>
<id>{instance_id}</id>
<label>{instance_label}</label>
<url>{protocol}://{destination_host}/{pens_context}</url>
<standard>pens</standard>
<transport_location>{protocol}://{source_host}/{repository_context}</transport_location>
<transport_userid>{transport_user}</transport_userid>
<transport_account>{transport_account}</transport_account>
<transport_password>{transport_password}</transport_password>
<system_userid>{system_user}</system_userid>
<system_password>{system_password}</system_password>
</destination>
<destination>
<id>02</id>
<label>Moodle_Test</label>
<url>http://LMS-URL/moodle</url>
<standard>pens</standard>
<transport_location>http://LCMS-URL/LCMS/evsfiles/exports</transport_location>
<transport_userid></transport_userid>
<transport_account>FIRST_USERID</transport_account>
<transport_password>FIRST_PASSWORD</transport_password>
<system_userid>SECOND_USERID</system_userid>
<system_password>SECOND_PASSWORD</system_password>
</destination>
</publish_configuration>
Fiddler shows that a request is sent to the LCMS when the AICC URL is launched and receives a "200 OK" header response.
We've been using the second "destination" option in the XML and it seems to generate the AICC URL correctly, from the LCMS's point of view. When launched, directly in the browser or from the LMS, the error from the beginning of this question pops up.
We have another type of LMS using these AICC URLs and it is working correctly, however we are trying to take this method and apply it to many different sites that are all using moodle.
System Information:
LMS:
Moodle: Version 2.3.2 (Build 201220910)
Apache2: 5.0.8
PHP: 5.3.16
MySQL: 5.5.21
Enable direct AICC url checked
Enable external AICC HACP checked
LCMS:
Kenexa LCMS: 8.2.0073
Tomcat Application Server: 6.0.32 (Bundled with LCMS)
MSSQL Server: 2008 R2
General
- Both applications are running on the same server.
- No internet connection to server.
- Local Address (192.168.1.10) doesn't work correctly in the publish.xml file
Questions:
Is it possible that PHP or Apache are blocking the AICC communication between the LCMS and the LMS?
Could this be a Moodle issue with AICC URLs?
I'm not sure if there are any other questions I should be asking in relation to this. I don't know enough about the inner workings of AICC/MOODLE/Kenexa LCMS to pinpoint the issue here. My usual solution would be to google until I find a similar issue and tailor their solution to fit my issue, but I am having a hard time finding anything like this.
If you need any more information, logs, etc, please let me know!
Thank you in advance!
UPDATE - 15/7/2013
After digging around the "fantastic" Moodle forums, I found a link to this bug report. Now, this didn't sound exactly like my problem, but I was running out of ideas so I gave it a try.
How to fix this issue:
Navigate to the SCORM Lesson Settings
Find "Display course structure in player"
Disable
Save and Display
I'm assuming that the JScript used to populate the "Table of Contents" in the content player is having issues with the AICC URL. As far as I can tell, the AICC URL does not provide any "course structure" so the Jscript fails to build the ToC and thus causes some deeper issues with the AICC content being displayed. (Most of this is assumption, would love for someone else to verify).

Quoting my update from the original question:
After digging around the "fantastic" Moodle forums, I found a link to this bug report. Now, this didn't sound exactly like my problem, but I was running out of ideas so I gave it a try.
How to fix this issue:
Navigate to the SCORM Lesson Settings
Find "Display course structure in player"
Disable
Save and Display
I'm assuming that the JScript used to populate the "Table of Contents" in the content player is having issues with the AICC URL. As far as I can tell, the AICC URL does not provide any "course structure" so the Jscript fails to build the ToC and thus causes some deeper issues with the AICC content being displayed. (Most of this is assumption, would love for someone else to verify).

Related

Error: 404 The page you're looking for could not be found (gitlab). How to resolve it?

Let's say I have some website with the name website.eu. When I deploy it and try to get access to a page online like this website.eu/about I catch the error:
"404 The page you're looking for could not be found. The resource that you are attempting to access does not exist or you don't have the necessary permissions to view it"
When I click on the link that brings me a website.eu/about it works well, but trying to type that URL in the input field it fails.
Everything works fine locally.
The project is developed using Vue3.
The project is no GitLab.
If someone helps I would appreciate it.
Hard to tell without seeing the code, but my guess is your router setup uses the web history mode, which relies on the server to have certain settings applied.
I believe switching to hash mode (while adding # to the routes) will work.
Alternatively, you can update your server to support redirects to have the html mode work.
example server configurations

How can I actually download/transfer a file found using UPnP?

I'm completely new to UPnP as a protocol, but I'm hoping to use it to transfer files from a Sony Camera to an iOS app I'm working on. So far I have SSDP discovery setup, I can read the UPnP client's services, search through folders and access file names, but the final hurdle which I'm stuck on is how to actually download/transfer the files once I'm able to list them!
What I end up getting is the below:
<item id="04_02_0624600856_000001_000001_000000" restricted="1" parentID="03_01_0624600856_000001_000000_000000">
<dc:title>DSC05076.ARW</dc:title>
<upnp:class>object.item.imageItem.photo</upnp:class>
<dc:date>2018-08-23T12:24:21</dc:date>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1">http://192.168.122.1:60151/SM_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fSM%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_CI=1">http://192.168.122.1:60151/LRG_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fLRG%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1">http://192.168.122.1:60151/TN_DSC05076.ARW?%2104%5f02%5f0624600856%5f000001%5f000001%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fTN%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21</res>
I would (With my naive experience of simple HTTP APIs) then expect to simply be able to download the file in question by hitting:
http://192.168.122.1:60151/SM_DSC05076.ARW or similar (I'm assuming I have to change this URL slightly as the file is listed as image/jpeg rather than RAW?
Whatever combination I try of the full res object, snipping bits, decoding the url e.t.c. I always get a 404 response when trying to visit the URL in question. Is there something more complex I need to do here? Or something simple that I'm missing?
Thanks in advance!
The problem here was that I was using a url from a previous session. It turns out that the urls change between connection sessions, which is why I was getting a 404.
Lesson learned: UPnP is highly dynamic, and you can’t rely on caching images under their access MRL!

TYPO3 - Blocked loadin mixed active content in console

On my live site 'mysite.com' I see the following error message in the console:
Blocked loading mixed active content “dev.mysite.com/fileadmin/templates/fonts/glyphicons-halflings-regular.woff2”
[Learn More]
jquery-1.11.3.min.js:4:24860
Blocked loading mixed active content “dev.mysite.com/fileadmin/templates/fonts/fontawesome-webfont.woff2?v=4.7.0”
[Learn More]
jquery-1.11.3.min.js:4:24860
I have no clue how it got there and don't remember what I changed. Where do I need to look for and how can I fix this?
I do have a Development Site ... dev.mysite.com ... and for deployment I just move the new files into the live folder.
Edit: I want to fix this problem by loading the files from my live site ... but I don't know from where I'm loading those files.
As those font-files are probably loaded from CSS I assume you already load your CSS from the dev server.
Check this out in the your browser (Network-tab).
You might see it in the HTML source. But the loading also could be initiated by javascript. so you need to check that too for any references to your dev-server.
Then you need to identify the source of this inclusion. If it's in the javascript it's obvious.
The CSS includes can be initiated in multiple places. The most common are in typoscript, so first try: go to the Template Analyzer and look for your dev-server domain. Identify the template and modify it.

Implement WebDAV connection in iPhone app

I've been searching around this forum and Google, but I can't find anything that helps me. I need to be able to connect to a WebDAV server, type in a username and password to get access and show the folders and files in my iPhone app. Just like the free iPhone app called WebDAV Nav.
Seems like the question is asked a lot, but no one really has an answer for it?
Does anyone know if there's a sample project out there, that could get me on the right track?
I've tried WTClient and flyingcode webdav.
Both flycode's WebDAV and WTClient are a few years old, seem incomplete and have a few errors.
When I try WTClient with a WebDAV server I get the response
This URL can be accessed only with a WebDAV compatible software program.
When I try the flycode WebDAV code, it fails to parse the server directory listing response correctly. I managed to modify the code in FMWebDAVRequest to look for slightly different XML elementNames in the response
eg "response" instead of "D:response", "href" instead of "D:href",
"resourcetype" instead of ":getcontenttype"
Then it worked, successfully retrieving the directory listing.
But should I continue to tweak this code, try something more robust or roll my own? What have others done/used?

Apps>Menu>Basic 405 Method Not Allowed

I am hosting my pages on my doamain. I put the following info. When I go to view the app it shows 405 Method Not Allowed..Not sure what I am doing wrong.
*
The first page load a APP makes is a POST request.
Seems your server could be rejecting them.
Its worth checking the server side error log for further information.
Indeed, it will most probably be a setting on your server. I had the same problem, my server didn't allow POST method on .html pages, changed my canvas page source to .php and all works fine now.
If you can look at your apache logs, it will provide a more clear error that we can help you debug with. Though a 405 error typically signifies a problem with the server and usually stems for a POST request.
I have made the mistake 2 times of creating my site in html instead of using a scripting extension. For example, if you are running on a Windows server and coding in Visual Studio, it is tempting to just create .htm or .html files. However, most web servers will not allow a POST operation to these pages. Instead, create .aspx pages, which will still allow you to use the same exact static HTML and JavaScript. This solved my problem in both cases.