Java 当已经创建的线程处于等待状态时,Struts2操作类的创建受到限制
Struts2操作实例的创建受到某种限制。在我的应用程序中,我有一个主JSP,其中有20个iFrame(另一个JSP)。每个iframe内容都是从Action类加载的。当我尝试用20个动作实例创建加载所有20帧时,没有问题。当我提交主JSP时,理想情况下应该创建20个操作实例。但我只能看到创建了6个动作实例。该应用程序需要所有20个iframe内容的contant用于业务处理,因此我将其存储在一个向量中,并确保一次只有一个操作实例访问该向量。此外,我还实现了wait和notifyAll机制。我面临的问题是,只创建了六个操作实例,其中我需要创建20个操作实例。这是Struts2中的限制吗?有没有办法解决这个问题Java 当已经创建的线程处于等待状态时,Struts2操作类的创建受到限制,java,struts2,Java,Struts2,Struts2操作实例的创建受到某种限制。在我的应用程序中,我有一个主JSP,其中有20个iFrame(另一个JSP)。每个iframe内容都是从Action类加载的。当我尝试用20个动作实例创建加载所有20帧时,没有问题。当我提交主JSP时,理想情况下应该创建20个操作实例。但我只能看到创建了6个动作实例。该应用程序需要所有20个iframe内容的contant用于业务处理,因此我将其存储在一个向量中,并确保一次只有一个操作实例访问该向量。此外,我还实现了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();
}
}
你需要提供更多的细节;我们既不清楚您实际在做什么,也不清楚问题出在哪里。@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不再相关。