Problem on sadi.sawsdl.generator

21 views
Skip to first unread message

christine

unread,
May 9, 2011, 12:41:52 PM5/9/11
to sadi-discuss
Dear all,

I’m testing the source code of SADI services generator from:
http://sadi.googlecode.com/svn/trunk/sadi.sawsdl.generator

After deploying the servlet locally using “mvn jetty:run”, I run the
command below:
curl -d @input.rdf --url http://localhost:8080/SAWSDL2SADIServlet/getKeggDrugsByPathway
However, the output is as follows:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:j.0="http://sadiframework.org/ontologies/sadi.owl#">
<rdf:Description>
<j.0:error>java.lang.Exception: There do not appear to be any Sadi
serviceName attributes in the WSDL file. Either this is not a Sadi-
oriented SAWSDL file,
or the Sadi namespace is not properly defined.</j.0:error>
</rdf:Description>
</rdf:RDF>

Is there anyone who can help me?
Thanks a lot.

Edward Kawas

unread,
May 9, 2011, 1:37:35 PM5/9/11
to sadi-d...@googlegroups.com
Hi Christine,

I think I know what is happening. I recently updated the sawsdl
document for that particular service and I must have forgot to include
some attributes.

I will let you know when I fix it (give me an hour or so).

Thanks,

Eddie

Jim McCusker

unread,
May 9, 2011, 1:43:21 PM5/9/11
to sadi-d...@googlegroups.com
On a related note, is there some documentation on what is required of
a SAWSDL to be SADI-compliant?

Thanks,
Jim
--
Jim McCusker
Programmer Analyst
Krauthammer Lab, Pathology Informatics
Yale School of Medicine
james.m...@yale.edu | (203) 785-6330
http://krauthammerlab.med.yale.edu

PhD Student
Tetherless World Constellation
Rensselaer Polytechnic Institute
mcc...@cs.rpi.edu
http://tw.rpi.edu

Edward Kawas

unread,
May 9, 2011, 2:30:20 PM5/9/11
to sadi-d...@googlegroups.com
HI Christine,

The example SAWSDL doc for that service was missing an xml namespace
declaration. I have added it and committed it to google code.

If you svn update, you can verify that the example service works properly.

Thanks,

Eddie

Edward Kawas

unread,
May 9, 2011, 2:31:00 PM5/9/11
to sadi-d...@googlegroups.com
Hi Jim,

No documentation on that topic just yet, but I will try to get some
generated quickly.

Thanks,

Eddie

christine

unread,
May 10, 2011, 2:32:34 AM5/10/11
to sadi-discuss
Hi Edward,

Thanks a lot for your help.
After updating the code, now the output is:
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:hsa04730">
<rdfs:isDefinedBy rdf:resource="http://localhost:8080/
SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
</rdf:Description>
<rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:map07025">
<rdfs:isDefinedBy rdf:resource="http://localhost:8080/
SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
</rdf:Description>
</rdf:RDF>

Is that correct? I think the output should be something like
KeggDrugs.

BTW, when I register the SADI service "http://192.168.10.88:8080/
SAWSDL2SADIServlet/getKeggDrugsByPathway" at "http://sadiframework.org/
registry/validate/", the reply is:
error reading RDF model from
http://192.168.10.88:8080/SAWSDL2SADIServlet/getKeggDrugsByPathway:
java.net.ConnectException: Connection timed out
(192.168.10.88 is my IP address)

Could you give me some suggestions?
Thank you so much.

--christine

Luke McCarthy

unread,
May 10, 2011, 2:36:34 AM5/10/11
to sadi-d...@googlegroups.com
On 2011-05-09, at 11:32 PM, christine wrote:

> Thanks a lot for your help.
> After updating the code, now the output is:
> <rdf:RDF
> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
> <rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:hsa04730">
> <rdfs:isDefinedBy rdf:resource="http://localhost:8080/
> SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
> </rdf:Description>
> <rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:map07025">
> <rdfs:isDefinedBy rdf:resource="http://localhost:8080/
> SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
> </rdf:Description>
> </rdf:RDF>
>
> Is that correct? I think the output should be something like
> KeggDrugs.

This looks like the output from an asynchronous service (as described at http://sadiframework.org/content/how-sadi-works/asynchronous-sadi-services/) So the actual output was probably contained at http://localhost:8080/
SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1.

> BTW, when I register the SADI service "http://192.168.10.88:8080/
> SAWSDL2SADIServlet/getKeggDrugsByPathway" at "http://sadiframework.org/
> registry/validate/", the reply is:
> error reading RDF model from
> http://192.168.10.88:8080/SAWSDL2SADIServlet/getKeggDrugsByPathway:
> java.net.ConnectException: Connection timed out
> (192.168.10.88 is my IP address)

This is an internal IP address and it is not valid outside of your local network. See http://en.wikipedia.org/wiki/Reserved_IP_addresses .

Cheers,

Luke

christine

unread,
May 10, 2011, 5:16:16 AM5/10/11
to sadi-discuss
Dear Luke,

Thanks for your explanation.
I got the output file.

Regards,
christine

On 5月10日, 下午2时36分, "Luke McCarthy" <l...@elmonline.ca> wrote:
> On 2011-05-09, at 11:32 PM, christine wrote:
>
>
>
>
>
> > Thanks a lot for your help.
> > After updating the code, now the output is:
> > <rdf:RDF
> > xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> > xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
> > <rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:hsa04730">
> > <rdfs:isDefinedBy rdf:resource="http://localhost:8080/
> > SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
> > </rdf:Description>
> > <rdf:Description rdf:about="http://lsrn.org/KEGG_PATHWAY:map07025">
> > <rdfs:isDefinedBy rdf:resource="http://localhost:8080/
> > SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1"/>
> > </rdf:Description>
> > </rdf:RDF>
>
> > Is that correct? I think the output should be something like
> > KeggDrugs.
>
> This looks like the output from an asynchronous service (as described athttp://sadiframework.org/content/how-sadi-works/asynchronous-sadi-ser...) So the actual output was probably contained athttp://localhost:8080/
> SAWSDL2SADIServlet/getKeggDrugsByPathway?poll=1.
>
> > BTW, when I register the SADI service "http://192.168.10.88:8080/
> > SAWSDL2SADIServlet/getKeggDrugsByPathway" at "http://sadiframework.org/
> > registry/validate/", the reply is:
> > error reading RDF model from
> >http://192.168.10.88:8080/SAWSDL2SADIServlet/getKeggDrugsByPathway:
> > java.net.ConnectException: Connection timed out
> > (192.168.10.88 is my IP address)
>
> This is an internal IP address and it is not valid outside of your local network. Seehttp://en.wikipedia.org/wiki/Reserved_IP_addresses.
>
> Cheers,
>
> Luke- 隐藏被引用文字 -
>
> - 显示引用的文字 -

christine

unread,
May 13, 2011, 12:13:16 PM5/13/11
to sadi-discuss
Dear all,

I want to encapsulate the following WSDL to SADI service.
http://array.nci.nih.gov/wsrf/services/cagrid/CaArraySvc_v1_0?wsdl

When I run the program of sadi.sawsdl.generator, and input this WSDL
URL (the operation is searchForHybridizations), the input/output
mapping couldn’t be set because the webpage only shows “Some
instructions here ...”.
I noticed that this WSDL is different from KEGG.wsdl, it imports
another binding service. However, even I tried the binding wsdl
http://array.nci.nih.gov/wsrf/share/schema/CaArraySvc_v1_0/CaArraySvc_v1_0.wsdl,
the problem is the same.

What should I do to create this sadi service? to modify the program or
use other programs?

Thank you very much.
--christine

Edward Kawas

unread,
May 13, 2011, 12:39:25 PM5/13/11
to sadi-d...@googlegroups.com
Hi Christine,

The generator doesnt yet handle WSDL documents that specify overly
complicated datatypes.Currently, it supports primitives
(string/integers/etc) and array of primitives. Your WSDL had datatype
schemas that nested their datatypes. Sorry.

You can still generate a SADI service with services described in your
WSDL, but it will require a bit more work on your part. You will have
to write the code that calls the underlying web service yourself. Once
that bit is written, take a look at
http://sadiframework.org/content/getting-involved/ for information on
using other tools that simplify the creation of SADI services.

Eddie

christine

unread,
May 16, 2011, 8:16:28 AM5/16/11
to sadi-discuss
Hi Edward,

Thanks for your kind reply.
I’m testing the SADI Java service skeleton according to the following
webpage (the hello example):
http://sadiframework.org/content/getting-involved/building-a-sadi-service-in-java/

I have generated SADI service skeleton and started Jetty server.
In the step “test your service”, my input is:
mvn ca.wilkinsonlab.sadi:sadi-tester:test-service -DserviceURL=http://
localhost:8080/hello -Dinput=http://sadiframe
work.org/test/hello-input.rdf -Doutput=http://sadiframework.org/test/
hello-output.rdf
The console output is:
……
Downloaded: http://dev.biordf.net/maven/ca/wilkinsonlab/sadi/sadi-client/0.1.0pr
e-SNAPSHOT/maven-metadata.xml (368 B at 0.2 KB/sec)
WARN [main] (RDFDefaultErrorHandler.java:36) - http://localhost:8080/hello(line
2 column 48): {W119} A processing instruction is in RDF content. No
processing
was done.
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 11.489s
[INFO] Finished at: Mon May 16 18:22:45 CST 2011
[INFO] Final Memory: 6M/247M
[INFO]
------------------------------------------------------------------------

How to resolve this warning?
Does this “build success” mean the SADI service is correct?

Thank you very much.
--christine


On 5月14日, 上午12时39分, Edward Kawas <edward.ka...@gmail.com> wrote:
> Hi Christine,
>
> The generator doesnt yet handle WSDL documents that specify overly
> complicated datatypes.Currently, it supports primitives
> (string/integers/etc) and array of primitives. Your WSDL had datatype
> schemas that nested their datatypes. Sorry.
>
> You can still generate a SADI service with services described in your
> WSDL, but it will require a bit more work on your part. You will have
> to write the code that calls the underlying web service yourself. Once
> that bit is written, take a look athttp://sadiframework.org/content/getting-involved/for information on

Luke McCarthy

unread,
May 16, 2011, 10:49:10 AM5/16/11
to sadi-d...@googlegroups.com
This is an internal Jena warning that comes up whenever an RDF document links to an XSL stylesheet. It's harmless.

BUILD SUCCESS means the maven task finished . In this particular case, the build task was generating the service skeleton, so that part is done. You can move on to the next step of the tutorial ("Adding business logic").

Cheers,

Luke

christine

unread,
May 16, 2011, 12:48:30 PM5/16/11
to sadi-discuss
Thanks a lot, Luke.
I have already added business logic. The above code is about the last
step “test your service”.
I have a little doubt that why need to point the expected output,
i.e.,
-Doutput=http://sadiframework.org/test/hello-output
In my understanding, to test the generated SADI service, we should
give the input and get the output, and check whether the output is
correct. In this example, I’m not sure where to find the output.

BTW, is there a more detailed document on how to design input/output
OWL classes and input/output RDF documents according to the WSDL
service?

Thank you,
--christine


On 5月16日, 下午10时49分, "Luke McCarthy" <l...@elmonline.ca> wrote:
> This is an internal Jena warning that comes up whenever an RDF document links to an XSL stylesheet.  It's harmless.
>
> BUILD SUCCESS means the maven task finished .  In this particular case, the build task was generating the service skeleton, so that part is done.  You can move on to the next step of the tutorial ("Adding business logic").
>
> Cheers,
>
> Luke
>
> On 2011-05-16, at 5:16 AM, christine wrote:
>
>
>
> > Hi Edward,
>
> > Thanks for your kind reply.
> > I’m testing the SADI Java service skeleton according to the following
> > webpage (the hello example):
> >http://sadiframework.org/content/getting-involved/building-a-sadi-ser...
>
> > I have generated SADI service skeleton and started Jetty server.
> > In the step “test your service”, my input is:
> > mvn ca.wilkinsonlab.sadi:sadi-tester:test-service -DserviceURL=http://
> > localhost:8080/hello   -Dinput=http://sadiframe
> > work.org/test/hello-input.rdf   -Doutput=http://sadiframework.org/test/
> > hello-output.rdf
> > The console output is:
> > ……
> > Downloaded:http://dev.biordf.net/maven/ca/wilkinsonlab/sadi/sadi-client/0.1.0pr
> > e-SNAPSHOT/maven-metadata.xml (368 B at 0.2 KB/sec)
> > WARN [main] (RDFDefaultErrorHandler.java:36) -http://localhost:8080/hello(line
> >> that bit is written, take a look athttp://sadiframework.org/content/getting-involved/forinformation on
> >> using other tools that simplify the creation of SADI services.
>
> >> Eddie- 隐藏被引用文字 -
>
> - 显示引用的文字 -

Luke McCarthy

unread,
May 16, 2011, 12:57:01 PM5/16/11
to sadi-d...@googlegroups.com
On 2011-05-16, at 9:48 AM, christine wrote:

> I have already added business logic. The above code is about the last
> step “test your service”.

Ah, sorry, I should have read more carefully. I should know better by know than to respond that early in the morning.

> I have a little doubt that why need to point the expected output,
> i.e.,
> -Doutput=http://sadiframework.org/test/hello-output
> In my understanding, to test the generated SADI service, we should
> give the input and get the output, and check whether the output is
> correct. In this example, I’m not sure where to find the output.

The service tester plugin does exactly this. It calls your service with the specified input and compares it to the specified expected output If they did not match (specifically: if the two RDF graphs are not isomorphic), there would be an error with a detailed explanation. You could try downloading the expected output document from http://sadiframework.org/test/hello-output and editing it before re-running the service tester plugin (the value of the output parameter can be a local file as well as a remote one...)

> BTW, is there a more detailed document on how to design input/output
> OWL classes and input/output RDF documents according to the WSDL
> service?

I don't think so. Eddie might have more information, though.

Cheers,

Luke

christine

unread,
May 16, 2011, 10:50:26 PM5/16/11
to sadi-discuss
Hi Luke,

Thanks for your explanation.
I understand.

--christine


On 5月17日, 上午12时57分, "Luke McCarthy" <l...@elmonline.ca> wrote:
> On 2011-05-16, at 9:48 AM, christine wrote:
>
> > I have already added business logic. The above code is about the last
> > step "test your service".
>
> Ah, sorry, I should have read more carefully. I should know better by know than to respond that early in the morning.
>
> > I have a little doubt that why need to point the expected output,
> > i.e.,
> > -Doutput=http://sadiframework.org/test/hello-output
> > In my understanding, to test the generated SADI service, we should
> > give the input and get the output, and check whether the output is
> > correct. In this example, I'm not sure where to find the output.
>
> The service tester plugin does exactly this. It calls your service with the specified input and compares it to the specified expected output If they did not match (specifically: if the two RDF graphs are not isomorphic), there would be an error with a detailed explanation. You could try downloading the expected output document fromhttp://sadiframework.org/test/hello-outputand editing it before re-running the service tester plugin (the value of the output parameter can be a local file as well as a remote one...)
Reply all
Reply to author
Forward
0 new messages