我在单个JVM上的Java EE应用程序中运行嵌入式服务器(目前)。应用服务器是带有Java 7的WAS 8.5。
以下是我初始化服务器的方法:
log.info("warming up database server bean...");
workingFolder = (String) lookup(RESOURCE_WORKING_FOLDER);
String orientdbHome = new File(workingFolder).getAbsolutePath() + "/orientdb"; //Set OrientDB home to current directory
System.setProperty("ORIENTDB_HOME", orientdbHome);
String serverConfig = orientdbHome + "/config/orientdb-server-config.xml";
log.info("statring orientdb from: " + orientdbHome + ", the server config file: " + serverConfig);
server = OServerMain.create();
server.startup(new File(serverConfig));
server.activate();
log.info("orientdb server started successfully: " + server.isActive());
我在2.1.16版本上引用了默认服务器配置文件。我对文件进行了以下两项更改:1)启用了Hazelcast插件,2)添加此用户:<user resources="*" password="password" name="root"/>
。
它似乎正确初始化,我甚至可以连接到Studio应用程序并从那里操纵数据,没有任何错误迹象。
但是,我无法从&#34;控制台&#34;应用
我在客户端上得到了这个:
orientdb&GT; connect remote:192.168.3.12 root password
与用户连接到远程服务器实例[remote:192.168.3.12] &#39; root&#39; ...错误: com.orientechnologies.orient.core.exception.OStorageException:不能 连接到远程服务器/数据库&#39; remote:192.168.3.12 /&#39;
错误:com.orientechnologies.common.io.OIOException:无法打开 连接到远程服务器:192.168.3.12:2424 /
错误:com.orientechnologies.common.io.OIOException:错误 连接到192.168.3.12:2424
错误: com.orientechnologies.orient.enterprise.channel.binary.ONetworkProtocolException: 无法从远程服务器读取协议版本/192.168.3.12:2424: java.net.SocketTimeoutException:读取超时
在服务器上:
[4/20/16 15:03:18:128 EDT] 000001d8 OServerNetwor E客户端出错 连接 java.lang.NoClassDefFoundError:com.orientechnologies.orient.enterprise.channel.binary.OChannelBinaryServer (初始化失败)at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:284) 在 com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.config(OBinaryNetworkProtocolAbstract.java:89) 在 com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.config(ONetworkProtocolBinary.java:116) 在 com.orientechnologies.orient.server.network.OServerNetworkListener.run(OServerNetworkListener.java:216) 引起:java.lang.NoClassDefFoundError: com.orientechnologies.orient.enterprise.channel.OChannel $ 1 at com.orientechnologies.orient.enterprise.channel.OChannel。(OChannel.java:60) ... 3更多引起:java.lang.ClassNotFoundException: com.orientechnologies.orient.enterprise.channel.OChannel $ 1 at java.net.URLClassLoader.findClass(URLClassLoader.java:665)at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:230) 在java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)at java.lang.ClassLoader.loadClass(ClassLoader.java:877)at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:123) 在java.lang.ClassLoader.loadClass(ClassLoader.java:827)at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62) 在 com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58) 在 com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:616) 在java.lang.ClassLoader.loadClass(ClassLoader.java:827)at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:584) 在java.lang.ClassLoader.loadClass(ClassLoader.java:827)... 4更多
以下是我的应用中包含的Maven依赖项:
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-jdbc</artifactId>
<version>2.1.16</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-enterprise</artifactId>
<version>2.1.16</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-server</artifactId>
<version>2.1.16</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-object</artifactId>
<version>2.1.16</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.orientechnologies</groupId>
<artifactId>orientdb-distributed</artifactId>
<version>2.1.16</version>
<scope>compile</scope>
</dependency>
答案 0 :(得分:1)
我想出了这个问题。
在查看启动日志时,我注意到了这一点:
[4/20/16 15:16:47:077 EDT] 000000df OServerNetwor I Port 0.0.0.0:2424忙,尝试下一个可用... [4/20/16 15:16:47:077 EDT] 000000df OServerNetwor I听二进制连接 0.0.0.0:2425(协议v.32,socket = default)
某些东西正在干扰端口2424(可能是以前尝试实现此操作失败)所以使用下一个可用端口。
&#34;控制台&#34;我试图连接到端口2424.一旦我手动指定端口2425,它就可以工作。