Re: URL +1, LSID -1

Hi Ricardo,

  The only real problems were tracking down all of the relevant jar  
files.  In particular, the javadns file was problematic because the  
link in the client doc was broken.  I missed the "old" directory the  
first time I went to http://www.dnsjava.org/download/ and hence could  
not find the version used in the lsid client (1.3.2).  The code  
failed at various places with different (much more recent) versions  
of this jar.  I think, all that is really needed is a decent build  
script to pull in all of the relevant third party jar files and to  
update the lsid code to reflect changes in them.  A better documented  
and tested client program would be nice (with working examples), but  
I managed to get theirs going so it must not be that bad :).   These  
issues are just basic tasks for a "living" software project - happy  
to hear that you are tending to this.

I tested a few of the examples you sent, but didn't get much  
satisfaction (lots of different errors though!): Below are the  
results produced using the testAuthority method in the LSIDTestClient  
class.

System.err.println(testAuthority 
("urn:lsid:gdb.org:GenomicSegment:GDB132938",SOAP));

Retrieving document at 'localhost'.
Retrieving document at 'LSIDAuthorityServiceHTTPBindings.wsdl',  
relative to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDAuthorityServiceHTTPBindings.wsdl'.
Retrieving document at 'LSIDAuthorityServiceSOAPBindings.wsdl',  
relative to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDAuthorityServiceSOAPBindings.wsdl'.
Retrieving document at 'localhost'.
Retrieving document at 'LSIDDataServiceHTTPBindings.wsdl', relative  
to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDDataServiceHTTPBindings.wsdl'.
Retrieving document at 'LSIDDataServiceSOAPBindings.wsdl', relative  
to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDDataServiceSOAPBindings.wsdl'.
urn:lsid:gdb.org:GenomicSegment:GDB132938
Error: 0
java.lang.ArrayIndexOutOfBoundsException: 0
	at com.ibm.lsid.client.LSIDResolver.getMetadataFromPort 
(LSIDResolver.java:717)
	at com.ibm.lsid.client.LSIDResolver.getMetadata(LSIDResolver.java:553)
	at com.ibm.lsid.client.LSIDResolver.getMetadata(LSIDResolver.java:524)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:213)
	at LSIDTestClient.main(LSIDTestClient.java:167)

System.err.println(testAuthority 
("urn:lsid:ubio.org:classificationbank:1164063",SOAP));

Retrieving document at 'localhost'.
urn:lsid:ubio.org:classificationbank:1164063
Error: null
java.lang.NullPointerException
	at com.ibm.lsid.wsdl.LSIDWSDLWrapper.extractPorts 
(LSIDWSDLWrapper.java:785)
	at com.ibm.lsid.wsdl.LSIDWSDLWrapper.<init>(LSIDWSDLWrapper.java:178)
	at com.ibm.lsid.client.LSIDResolver.resolveAuthority 
(LSIDResolver.java:157)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:761)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:168)

System.err.println(testAuthority("urn:lsid:tdwg.gbif.org:dharma: 
10298322400",SOAP));

Error getting WSDL for authority: null, will attempt default bindings
urn:lsid:tdwg.gbif.org:dharma:10298322400
Error: 500 :  Root Cause: org.apache.axis.AxisFault ; nested  
exception is:
	java.net.UnknownHostException: tdwg.gbif.org
com.ibm.lsid.LSIDException: 500 :  Root Cause:  
org.apache.axis.AxisFault ; nested exception is:
	java.net.UnknownHostException: tdwg.gbif.org
	at com.ibm.lsid.soap.SOAPUtils.processAxisFault(SOAPUtils.java:119)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:857)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:169)
printStackTrace(pw): com.ibm.lsid.LSIDException
STACK TRACE FOR INNER EXCEPTION: org.apache.axis.AxisFault
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.userException
  faultSubcode:
  faultString: java.net.UnknownHostException: tdwg.gbif.org
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/} 
stackTrace:java.net.UnknownHostException: tdwg.gbif.org
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:430)
	at java.net.Socket.connect(Socket.java:516)
	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.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:135)
	at org.apache.axis.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:99)
	at org.apache.axis.transport.http.HTTPSender.getSocket 
(HTTPSender.java:131)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket 
(HTTPSender.java:370)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88)
	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.client.AxisClient.invoke(AxisClient.java:147)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
	at org.apache.axis.client.Call.invoke(Call.java:2702)
	at org.apache.axis.client.Call.invoke(Call.java:2378)
	at org.apache.axis.client.Call.invoke(Call.java:2301)
	at org.apache.axis.client.Call.invoke(Call.java:1758)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:840)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:169)

	{http://xml.apache.org/axis/}hostname:Benjamin-Goods-Computer.local

java.net.UnknownHostException: tdwg.gbif.org
	at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:97)
	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.client.AxisClient.invoke(AxisClient.java:147)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
	at org.apache.axis.client.Call.invoke(Call.java:2702)
	at org.apache.axis.client.Call.invoke(Call.java:2378)
	at org.apache.axis.client.Call.invoke(Call.java:2301)
	at org.apache.axis.client.Call.invoke(Call.java:1758)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:840)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:169)
Caused by: java.net.UnknownHostException: tdwg.gbif.org
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:430)
	at java.net.Socket.connect(Socket.java:516)
	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.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:135)
	at org.apache.axis.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:99)
	at org.apache.axis.transport.http.HTTPSender.getSocket 
(HTTPSender.java:131)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket 
(HTTPSender.java:370)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88)
	... 14 more

System.err.println(testAuthority 
("urn:lsid:lsid.zoology.gla.ac.uk:predicates:isBasionymOf",SOAP));

Retrieving document at 'localhost'.
urn:lsid:lsid.zoology.gla.ac.uk:predicates:isBasionymOf
Error: null
java.lang.NullPointerException
	at com.ibm.lsid.wsdl.LSIDWSDLWrapper.extractPorts 
(LSIDWSDLWrapper.java:785)
	at com.ibm.lsid.wsdl.LSIDWSDLWrapper.<init>(LSIDWSDLWrapper.java:178)
	at com.ibm.lsid.client.LSIDResolver.resolveAuthority 
(LSIDResolver.java:157)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:761)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:170)

System.err.println(testAuthority("urn:lsid:ipni.org:names: 
30000959-2",SOAP));

Error getting WSDL for authority: null, will attempt default bindings
urn:lsid:ipni.org:names:30000959-2
Error: 500 :  Root Cause: org.apache.axis.AxisFault ; nested  
exception is:
	java.net.ConnectException: Operation timed out
com.ibm.lsid.LSIDException: 500 :  Root Cause:  
org.apache.axis.AxisFault ; nested exception is:
	java.net.ConnectException: Operation timed out
	at com.ibm.lsid.soap.SOAPUtils.processAxisFault(SOAPUtils.java:119)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:857)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:171)
printStackTrace(pw): com.ibm.lsid.LSIDException
STACK TRACE FOR INNER EXCEPTION: org.apache.axis.AxisFault
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.userException
  faultSubcode:
  faultString: java.net.ConnectException: Operation timed out
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException:  
Operation timed out
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:430)
	at java.net.Socket.connect(Socket.java:516)
	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.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:135)
	at org.apache.axis.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:99)
	at org.apache.axis.transport.http.HTTPSender.getSocket 
(HTTPSender.java:131)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket 
(HTTPSender.java:370)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88)
	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.client.AxisClient.invoke(AxisClient.java:147)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
	at org.apache.axis.client.Call.invoke(Call.java:2702)
	at org.apache.axis.client.Call.invoke(Call.java:2378)
	at org.apache.axis.client.Call.invoke(Call.java:2301)
	at org.apache.axis.client.Call.invoke(Call.java:1758)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:840)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:171)

	{http://xml.apache.org/axis/}hostname:Benjamin-Goods-Computer.local

java.net.ConnectException: Operation timed out
	at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:97)
	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.client.AxisClient.invoke(AxisClient.java:147)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2719)
	at org.apache.axis.client.Call.invoke(Call.java:2702)
	at org.apache.axis.client.Call.invoke(Call.java:2378)
	at org.apache.axis.client.Call.invoke(Call.java:2301)
	at org.apache.axis.client.Call.invoke(Call.java:1758)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:840)
	at com.ibm.lsid.client.LSIDResolver.fetchWSDL(LSIDResolver.java:774)
	at com.ibm.lsid.client.LSIDResolver.getWSDLWrapper(LSIDResolver.java: 
331)
	at LSIDTestClient.testAuthority(LSIDTestClient.java:209)
	at LSIDTestClient.main(LSIDTestClient.java:171)
Caused by: java.net.ConnectException: Operation timed out
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:430)
	at java.net.Socket.connect(Socket.java:516)
	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.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:135)
	at org.apache.axis.components.net.DefaultSocketFactory.create 
(DefaultSocketFactory.java:99)
	at org.apache.axis.transport.http.HTTPSender.getSocket 
(HTTPSender.java:131)
	at org.apache.axis.transport.http.HTTPSender.writeToSocket 
(HTTPSender.java:370)
	at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:88)
	... 14 more

and just to show that it can possibly work

System.err.println(testAuthority 
("urn:lsid:biomoby.org:objectclass:DNASequence: 
2001-09-21T16-00-00Z",SOAP));

Retrieving document at 'localhost'.
Retrieving document at 'LSIDAuthorityServiceHTTPBindings.wsdl',  
relative to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDAuthorityServiceHTTPBindings.wsdl'.
Retrieving document at 'LSIDAuthorityServiceSOAPBindings.wsdl',  
relative to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDAuthorityServiceSOAPBindings.wsdl'.
Retrieving document at 'localhost'.
Retrieving document at 'LSIDDataServiceHTTPBindings.wsdl', relative  
to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDDataServiceHTTPBindings.wsdl'.
Retrieving document at 'LSIDDataServiceSOAPBindings.wsdl', relative  
to 'localhost'.
Retrieving document at 'LSIDPortTypes.wsdl', relative to  
'LSIDDataServiceSOAPBindings.wsdl'.
urn:lsid:biomoby.org:objectclass:DNASequence:2001-09-21T16-00-00Z
metadata bytes read: 4665
metadata expires: Thu Jul 12 06:02:56 PDT 2007
metadata format: application/xml+rdf
Data Read: 2472 bytes of data.




On Jul 12, 2007, at 12:20 PM, Ricardo Pereira wrote:

>     Dear Benjamin,
>
>     Please see my answers below (inline).
>
> Benjamin Good wrote:
>> I managed to get the Java client code from IBM (http://tinyurl.com/ 
>> 2hvjf6 ) running this morning, but a) it was a pain
> Maybe we should make the client libraries easier to use. I don't  
> know exactly how easy it is to use the resolution (client) part of  
> the Java stack, but the Perl one is dead simple to use.
>
> In any case, could you please be more specific and tell us (of just  
> me off list if you want) what were the major hurdles you had to  
> hop? That will help us address the issues more quickly.
>> and b) of the few lsids I had on hand, only one of them worked.
> Did you try and test these LSIDs on Rod Page's LSID tester (http:// 
> linnaeus.zoology.gla.ac.uk/~rpage/lsid/tester/) or the TDWG LSID on- 
> line resolver (http://lsid.tdwg.org/)? Many LSIDs, especially those  
> from BioPathways are "broken" after they've switched off their LSID  
> site.
>
> In any case, here are a few that work:
>
> urn:lsid:col2005.gbif.org:col2005:tc-(t.1246388)(d.)(cn.)(r.)
> urn:lsid:ubio.org:namebank:11815
> urn:lsid:lsid.zoology.gla.ac.uk:predicates:isBasionymOf
> urn:lsid:tdwg.gbif.org:dharma:10298322400
> urn:lsid:ubio.org:namebank:11815
> urn:lsid:ubio.org:classificationbank:1164063
> urn:lsid:indexfungorum.org:Names:213649
> urn:lsid:gdb.org:GenomicSegment:GDB132938
> urn:lsid:ipni.org:names:30000959-2
>
> There are more LSIDs that work listed at: http:// 
> lsids.sourceforge.net/resources/authorities/
>
>> I'm pretty new (and hesitant to join) the standards wars, but I  
>> think there is really a lot of power in the "he who codes first  
>> [and best]" wins" argument.  For those of you arguing for the  
>> adoption of LSIDs, IMHO, the most powerful thing you could really  
>> do at this point would be to step up and take over the development  
>> of the (as far as I can tell) abandoned code stack at the often- 
>> discussed sourceforge site.   Given their experience using lsids,  
>> the BioMoby team (sorry Ed..) is really the most likely candidate  
>> to do this effectively.
> You are absolutely right. However, we, from the biodiversity  
> information community, are also interested pushing LSIDs forward.  
> We have now updated the LSID website (now at http://lsids.sf.net -  
> to be formally annouced shortly) and created a new SF developer  
> site (http://sf.net/projects/lsids) to carry out new development.
>
> On the source code front, we have some colleagues who have modified  
> the Java stack to work with their WebWork/Struts server. We will  
> take a look at their work and try to make it more general so others  
> can use.
>
> You will definitely hear more about all this shortly.
>
> Cheers,
>
> Ricardo
>
>

Received on Thursday, 12 July 2007 20:09:12 UTC