Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当已经创建的线程处于等待状态时,Struts2操作类的创建受到限制_Java_Struts2 - Fatal编程技术网

Java 当已经创建的线程处于等待状态时,Struts2操作类的创建受到限制

Java 当已经创建的线程处于等待状态时,Struts2操作类的创建受到限制,java,struts2,Java,Struts2,Struts2操作实例的创建受到某种限制。在我的应用程序中,我有一个主JSP,其中有20个iFrame(另一个JSP)。每个iframe内容都是从Action类加载的。当我尝试用20个动作实例创建加载所有20帧时,没有问题。当我提交主JSP时,理想情况下应该创建20个操作实例。但我只能看到创建了6个动作实例。该应用程序需要所有20个iframe内容的contant用于业务处理,因此我将其存储在一个向量中,并确保一次只有一个操作实例访问该向量。此外,我还实现了wait和notifyAll机制。我面

Struts2操作实例的创建受到某种限制。在我的应用程序中,我有一个主JSP,其中有20个iFrame(另一个JSP)。每个iframe内容都是从Action类加载的。当我尝试用20个动作实例创建加载所有20帧时,没有问题。当我提交主JSP时,理想情况下应该创建20个操作实例。但我只能看到创建了6个动作实例。该应用程序需要所有20个iframe内容的contant用于业务处理,因此我将其存储在一个向量中,并确保一次只有一个操作实例访问该向量。此外,我还实现了wait和notifyAll机制。我面临的问题是,只创建了六个操作实例,其中我需要创建20个操作实例。这是Struts2中的限制吗?有没有办法解决这个问题

public void waitForOperationStatus() {
    String opStatus = getOperationStatusFromSession();
    synchronized (productVOsInVector) {
        while (!opStatus.equalsIgnoreCase(SUCCESS)) {
            try {
                System.out.println("Window # " + activeWindowNumber
                        + " Waiting");
                productVOsInVector.wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            opStatus = getOperationStatusFromSession();
        }
        productVOsInVector.notifyAll();
    }
}

你需要提供更多的细节;我们既不清楚您实际在做什么,也不清楚问题出在哪里。@Dave:我发现这个问题是由于在向量对象上不正确地实现wait()和notifyAll()机制造成的。下面给出了代码:非常感谢您提供任何帮助来解决这个问题。public void waitForOperationStatus(){String opStatus=getOperationStatusFromSession();synchronized(productVOsInVector){while(!opStatus.equalsIgnoreCase(SUCCESS)){try{System.out.println(“Window#”+activeWindowNumber+“Waiting”);productVOsInVector.wait()}catch(InterruptedException e){e.printStackTrace();}opStatus=getOperationStatusFromSession();}productVOsInVector.notifyAll();}请编辑该问题;应该清楚的是,注释中的代码基本上难以辨认。我发布了一个新问题@。请忽略该问题,因为该问题与Struts2不再相关。