DICE-UNC / jargon

Jargon core libraries
Other
28 stars 31 forks source link

org.irods.jargon.core.exception.ClientServerNegotiationException: failure in client server negotiation #414

Open darwinjob opened 2 years ago

darwinjob commented 2 years ago

Hi I'm trying a simple thing like this:

IRODSAccount irodsAccount = IRODSAccount.instance("xxx.xxx.xx", 1247, "xxx", "xxx", "xxx", "xxx", "");
IRODSFileFactory irodsFileFactory = irodsFileSystem .getIRODSFileFactory(irodsAccount);

And I get this:

Exception in thread "main" org.irods.jargon.core.exception.ClientServerNegotiationException: failure in client server negotiation
    at org.irods.jargon.core.connection.ClientServerNegotiationService.negotiateUsingServerProtocol(ClientServerNegotiationService.java:131)
    at org.irods.jargon.core.connection.ClientServerNegotiationService.negotiate(ClientServerNegotiationService.java:106)
    at org.irods.jargon.core.connection.AuthMechanism.clientServerNegotiation(AuthMechanism.java:158)
    at org.irods.jargon.core.connection.AuthMechanism.clientServerNegotiationHook(AuthMechanism.java:72)
    at org.irods.jargon.core.connection.AuthMechanism.authenticate(AuthMechanism.java:196)
    at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocolFactory.authenticate(AbstractIRODSMidLevelProtocolFactory.java:212)
    at org.irods.jargon.core.connection.AbstractIRODSMidLevelProtocolFactory.instance(AbstractIRODSMidLevelProtocolFactory.java:95)
    at org.irods.jargon.core.connection.IRODSProtocolManager.createNewProtocol(IRODSProtocolManager.java:139)
    at org.irods.jargon.core.connection.IRODSSimpleProtocolManager.getIRODSProtocol(IRODSSimpleProtocolManager.java:56)
    at org.irods.jargon.core.connection.IRODSSession.connectAndAddToProtocolsMap(IRODSSession.java:519)
    at org.irods.jargon.core.connection.IRODSSession.currentConnection(IRODSSession.java:426)
    at org.irods.jargon.core.pub.IRODSGenericAO.<init>(IRODSGenericAO.java:61)
    at org.irods.jargon.core.pub.io.IRODSFileFactoryImpl.<init>(IRODSFileFactoryImpl.java:42)
    at org.irods.jargon.core.pub.IRODSFileSystem.getIRODSFileFactory(IRODSFileSystem.java:135)
    at irods_test.IRODStest.main(IRODStest.java:30)

Cyberduck connects OK using the same address/creds. Any idea what this might be?

<dependency>
  <groupId>org.irods.jargon</groupId>
  <artifactId>jargon-core</artifactId>
  <version>4.3.2.5-RELEASE</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="irodsConnectionManager"
        class="org.irods.jargon.core.connection.IRODSSimpleProtocolManager"
        factory-method="instance" init-method="initialize"
        destroy-method="destroy">
    </bean>

    <bean id="irodsSession"
        class="org.irods.jargon.core.connection.IRODSSession"
        factory-method="instance">
        <constructor-arg
            type="org.irods.jargon.core.connection.IRODSProtocolManager"
            ref="irodsConnectionManager" />
    </bean>

    <bean id="irodsAccessObjectFactory"
        class="org.irods.jargon.core.pub.IRODSAccessObjectFactoryImpl">
        <constructor-arg ref="irodsSession" />
    </bean>

</beans>

JavaSE 1.8, Eclipse, Mac 12.4

trel commented 2 years ago

I think this is the same conversation as in the Google group?

https://groups.google.com/g/irod-chat/c/6pjPqem8XgM

Need to connect via SSL.

darwinjob commented 2 years ago

Yes it is :) The problem is that all I initially have is https://github.com/DICE-UNC/jargon/wiki/Managing-connections from 2014 This is very basic operation. IMHO the connection should be either done "under the hood" or described in some docs.

trel commented 2 years ago

Thanks for confirming.

And I agree with your assessment.