Original post by Chad Menke.
I'm having some trouble getting an inbound HTTP Servicelink adaptor to work. I wasn't involved in the install or configuration of the server. How can I find the correct <rc_host>:<rc_port>/IntegrationServer/ishttplistener?channelID=<channel-id> or How can I be sure the Server and IIS is configured correctly?
I'm just trying to do a post from a web page to finish off a task.
The error I get is "IE cannot display the webpage".
Peter Lee - Siemens
10:22am, May 4
I don't believe there's any additional configuration required after the installation of the application, so if it's up and running you should be okay. I'm guessing that you were able to send an outbound message to initiate the post from the web page, which would indicate that ServiceLink is running. But this can be confirmed by clicking the "Check ServiceLink Commnication Status" link on the home tab of the ServiceLink module.
Which version of RequestCenter are you running? I think this call for 2007 and 2008 are exactly the same, but good to know just in case.
I'm also guessing you have the ServiceLink user guide based on the url you provided but just in case you don't the following info is provided in that documentation. Which is provided on newScale's technical document website, http://www.newscale.com/techdocs/. You will need to contact newScale support to get the username and password in order download material though. <rc_host> is the newScale application server
<rc_port> is the port on which newScale is listening
<channel-id> is the channel ID which uniquely identifies the task to be affected
by the inbound message. Error 503 (Application Error) is returned to the 3rd
party system if the channelID does not apply to an ongoing task.
The channel-id is assigned when your external task is initiated and can be extracted in the outbound message which will need to be saved and feed back in the inbound message. Here's an example inbound transformation to update comments and complete the task.
<?xml version="1.0" encoding="UTF-8"?>
<message channel-id="10040532:1271857836239:-32095">
<add-comments>
<comment>Sent done action on Tue May 04 14:23:01 EDT 2010</comment>
</add-comments>
<take-action action="done">
</take-action>
</message>
Hope this helps,
Menke
11:28am, May 4
We are on version 2008.3
I'm able to outbound to a DB and write out files. I'm trying to use an HTML Post to end the task, sending back the channel-id. whan I attempt to submit all I get back is, "Page can not display" and the task is still ongoing.. So I'm assuming I don't have the URL correct..
According to my ServiceLink communication status:
it's successfull
it has a servicelink Communication URL. I'm using that URL and Port number as my <rc_host>:<rc_port> followed by "/IntegrationServer/ishttplistener?channelId=<my_channel_id>". this is all in that action property of my form tag.
when I submit my form all I get is "Internet Explorer cannot display the webpage"
What am I doing wrong?
Patti Richards - Dominion Res...
11:53am, May 4
Go to ServiceLink module in Request Center. Click on link that says "Check ServiceLink communication status" it will give you the fully qualified Communication URL. Make sure the server name is the fully qualified name. It will give you the port # that Service Link is running on. Ours is 8089.
We are using the custom HTTPIWA2 newscale HTTP Adapter, which has the nice option of it storing the channelid, so you don't have to send and worry about receiving it back.
Peter Lee - Siemens
12:09pm, May 4
In 2008.3 there is an option in the administration module to enable and disable webservices, and the default is set to Off. Check this value and see if turning it to "Yes" will fix your issue. Also not sure if RC would require a restart for that to take effect, but if your working dev i'd say try that too just in case.
Menke
12:14pm, May 4
I tried to follow the link provided by the ServiceLink module but all I get is "Cannot display the webpage" message. Does this mean my Server Admin set up IIS wrong?
Patti Richards - Dominion Res...
12:15pm, May 4
If you have access to app server in dev, I would pull the server.log file off /servicelink/log directory. You might see more information there to get a better idea what's going on.
Menke
12:18pm, May 4
WebServices is turned on..
Menke
4:09am, May 5
Thank you for your help! I got it figured out.
Patti Richards - Dominion Res...
5:51am, May 5
what was your resolution? Just curious....
Menke
6:37am, May 5
Well.. it's really stupid.. I was being blocked by the firewall... so I got the firewall rule removed.. now traffic is being logged. However my xsl sheet is erroring or I'm posting with the wrong ENCTYPE. I'm not well versed in xsl style sheets. How do you pull the channel-id from the post to use in the xsl sheet?
Menke
9:21am, May 5
I'm throwing Transformation Exception errors everytime I post. I Even cut and pasted the XSL from above into my inbound transformation. Not sure what I'm doing wrong.
Patti Richards - Dominion Res...
7:08am, May 6
Can you go into service link home - under messages pick requisition from drop down and search on the req number. Then click on the inbound message and then click on external system message and it will show you the xml.
I found a good way to work is to copy the inbound message to a file. Get XML Spy if you can- i code/debug my XSL there first to get it working. Then, I paste it into service link transformations. XML spy will let you work locally applying the xsl. Much faster development time.
If you send me (or attach) your XML- i might be able to help you with the xslt to get the channel id. I'm not an expert, but have been able to figure out enough to get the job done.
Menke
5:40am, May 7
ok I've tried to do a manual send message using the done.xml file, this fails resulting in a "invalid nsxml" message
The Transform code file contains my xsl transformation and the resulting log entries from the server.
HELP!
transformcodeandlogfiles.txt Done.xml
Allen C
11:13am, May 10
The error message you are getting :
"2010-05-07 07:37:16,130 ERROR [STDERR] SystemId Unknown; Line #1; Column #1; Content is not allowed in prolog."
Seems to imply that there may be an invisible character that is being passed in the XML being sent out. The fact that Line 1, Column 1 would appears to be the "<" character in your done.xml file, but I would double-check your transform code to make sure that nothing is being placed before the character. Even a space will probably cause the XML to be invalidated. There are strict rules for processing the first line (the xml declaration) of an xml file.
You might want to review the actual xml file output in an editor like notepad ++ (which is free) or some editor which will show ALL character in a file (even MS Word has an option to do this), just to make sure that nothing is appearing before the "<" character. Also, verify that the ASCII representative value of the less than character is correct. Some characters may look like the less than symbol but could actually be some other UTF-8 representation. The correct ASCII or UTF-8 value for less than sign is:
Unicode: U+003C
UTF-8 (in hex): 3c
ASCII (in decimal): 60
Patti Richards - Dominion Res...
1:51pm, May 10
Hey, I took your done.xml, imported it into my XML Spy. Applied the newscale schema against it and it validated. (nsxml.xsd). I also applied the XSL against it, and I got no errors. I don't think the problem is with that code.
Just for grins, i called the URL via passed it a channelId of a message that had failed.
In our logs, i got a similar message: (but not the prolog stuff)
2010-05-10 17:39:02,785 ERROR [STDERR] SystemId Unknown; Line #-1; Column #-1; Premature end of file.
2010-05-10 17:39:02,785 ERROR [com.newscale.is.core.MessageExecutor] Exception Occured :-Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
etc.
If you have YES hours, I would post the question to newscale.
Menke
4:12am, May 11
Thanks guys! Your right my xsl amd xml were correct. My problem was the Post. I created a javascript function;
function submitInfo(){
var httpobj = new activexobject("microsort.xmlhttp);
httpobj = ("Post","http://<Server>:<port>/integrationServer/ishttplistener?channelId=<channel-id>",false);
var strxml = "<?xml version='1.0' encoding='utf-8'?><message channel-id='<channel-id'><add-comments><comment>blah blah blah</comment></add-comments><take-action action='done'/></message>"
httpobj.send(strxml);
}
Worked like a charm. Sent in the xml message so there is no need for a Tranformation on the inbound. Plus we can dynamicaly build the xml message.
Thank you from looking into this for me though.
I'm having some trouble getting an inbound HTTP Servicelink adaptor to work. I wasn't involved in the install or configuration of the server. How can I find the correct <rc_host>:<rc_port>/IntegrationServer/ishttplistener?channelID=<channel-id> or How can I be sure the Server and IIS is configured correctly? I'm just trying to do a post from a web page to finish off a task. The error I get is "IE cannot display the webpage".