Java 单击按钮时无法从小程序调用EmbeddedNeo4j

Java 单击按钮时无法从小程序调用EmbeddedNeo4j,java,applet,neo4j,japplet,Java,Applet,Neo4j,Japplet,我试图通过单击submit按钮从Java小程序form.class调用EmbeddedNeo4j程序来创建节点。 我面临以下问题 1.到达以下代码行后,我的程序停止工作 GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH); 我知道这一点是因为我在applet中使用了JOptionPane 我正在form.java中的actionPerformed方法中调用的函数中

我试图通过单击submit按钮从Java小程序form.class调用EmbeddedNeo4j程序来创建节点。 我面临以下问题 1.到达以下代码行后,我的程序停止工作

     GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
我知道这一点是因为我在applet中使用了JOptionPane

我正在form.java中的actionPerformed方法中调用的函数中创建EmbeddedNeo4j对象

public void actionPerformed(ActionEvent ae)
    {
         callFunction();
    }



    public void callFunction()
    {
         String test;
         EmbeddedNeo4j hello = new EmbeddedNeo4j();
         test=hello.createDb();
         JOptionPane.showMessageDialog( frame,test);

     }
我的嵌入式Neo4J的一部分是

  public class EmbeddedNeo4j
 {
   private static final String DB_PATH = "C://neo4j-community-1.9.6//data//graph.db";
   public String greeting;
   GraphDatabaseService graphDb;
   Node firstNode;
   Node secondNode;
   Relationship relationship;

private static enum RelTypes implements RelationshipType
{
    KNOWS
}

 String createDb()
{

    graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
    Transaction tx=null;
    try
    {
         tx= graphDb.beginTx();
         firstNode = graphDb.createNode();
        firstNode.setProperty( "message", "Hello, " );
        secondNode = graphDb.createNode();
        secondNode.setProperty( "message", "World!" );

        relationship = firstNode.createRelationshipTo( secondNode, RelTypes.KNOWS );
        relationship.setProperty( "message", "brave Neo4j " );

        System.out.print( firstNode.getProperty( "message" ) );
        System.out.print( relationship.getProperty( "message" ) );
        System.out.print( secondNode.getProperty( "message" ) );
        // END SNIPPET: readData

        greeting = ( (String) firstNode.getProperty( "message" ) )
                   + ( (String) relationship.getProperty( "message" ) )
                   + ( (String) secondNode.getProperty( "message" ) );


        tx.success();
    }
    catch(Exception e)
    {
        tx.failure();
    }
    finally
    {

        tx.finish();
        return greeting;

    }
        }}  During trial and error I found that if I change the value of greeting before                       GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);               It will open a dialog box.Any idea what is causing this problem?
我的问题在于

                        [java.lang.Thread.getStackTrace(Thread.java:1588), EmbeddedNeo4j.start(EmbeddedNeo4j.java:48), 
            form.callFunction(form.java:170), form.actionPerformed(form.java:151), 
            javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018), 
            javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341), 
            javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402), 
            javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259), 
            javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252), 
            java.awt.Component.processMouseEvent(Component.java:6505), 
            javax.swing.JComponent.processMouseEvent(JComponent.java:3320), 
            java.awt.Component.processEvent(Component.java:6270), 
            java.awt.Container.processEvent(Container.java:2229), 
            java.awt.Component.dispatchEventImpl(Component.java:4861), 
            java.awt.Container.dispatchEventImpl(Container.java:2287),
             java.awt.Component.dispatchEvent(Component.java:4687), 
             java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832), 
             java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492),
             java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422),
             java.awt.Container.dispatchEventImpl(Container.java:2273), 
             java.awt.Component.dispatchEvent(Component.java:4687), 
             java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735), 
             java.awt.EventQueue.access$200(EventQueue.java:103), 
             java.awt.EventQueue$3.run(EventQueue.java:694),
             java.awt.EventQueue$3.run(EventQueue.java:692), 
             java.security.AccessController.doPrivileged(Native Method),
             java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76),
             java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87), 
             java.awt.EventQueue$4.run(EventQueue.java:708), 
             java.awt.EventQueue$4.run(EventQueue.java:706),
             java.security.AccessController.doPrivileged(Native Method),
             java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76), 
             java.awt.EventQueue.dispatchEvent(EventQueue.java:705), 
             java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242), 
             java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161), 
             java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150), 
             java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146), 
             java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138),
             java.awt.EventDispatchThread.run(EventDispatchThread.java:91)]

任何stacktrace或错误消息?否,无错误消息:(捕获异常并使事务失败,但不处理异常。如果事务失败,
String greeting
将以未初始化的方式返回。如果a)在声明时为greeting提供一个伪值,即
String greeting=“dummy”和b)处理异常或至少打印它
捕获(异常e){e.printStackTrace();tx.failure()}
?如果我给出一个伪值,并且没有初始化GraphDatabaseService graphDb=new GraphDatabaseFactory().newEmbeddedDatabase(DB_路径);返回它只是为了检查它是否返回表单,它确实返回了;它不返回任何内容。printing e.printStackTrace()不会在终端中显示任何内容。请为我的代码获取stackTrace。我已在问题中对其进行了编辑