Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Announcements

Welcome to Cisco Support Community. We would love to have your feedback.

For an introduction to the new site, click here. And see here for current known issues.

Inbound HTTP Servicelink Adaptor

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".

Everyone's tags (1)
773
Views
0
Helpful
0
Replies
CreatePlease login to create content