Java程序Microsoft服务器上每个用户一个进程
我收到要修复的bug。有人编写程序,从其他应用程序中调用打印文档。带有此程序的Jar位于microsoft服务器上,供少数用户使用。问题是当一个用户想要打印,而另一个用户也需要在同一时刻打印。Fox example user1单击打印并进行打印预览,同时user2执行相同的操作,但他没有打印预览,因为文档user2的打印预览显示在屏幕user1上。我不知道臭虫在哪里。可能主应用程序调用相同的jar实例,或者使用相同的进程。这是我的方法代码,当用户单击打印时调用Java程序Microsoft服务器上每个用户一个进程,java,jvm,multiprocessing,windows-server-2012-r2,Java,Jvm,Multiprocessing,Windows Server 2012 R2,我收到要修复的bug。有人编写程序,从其他应用程序中调用打印文档。带有此程序的Jar位于microsoft服务器上,供少数用户使用。问题是当一个用户想要打印,而另一个用户也需要在同一时刻打印。Fox example user1单击打印并进行打印预览,同时user2执行相同的操作,但他没有打印预览,因为文档user2的打印预览显示在屏幕user1上。我不知道臭虫在哪里。可能主应用程序调用相同的jar实例,或者使用相同的进程。这是我的方法代码,当用户单击打印时调用 public void openC
public void openCreatedFile() {
String filePath = "file:///" + findNewlyCreatedFile().replace("\\", "/");
try {
if (xContext != null)
System.out.println("Opening file ...");
xMCF = xContext.getServiceManager();
Object oDesktop = xMCF.createInstanceWithContext("com.sun.star.frame.Desktop", xContext);
xCLoader = UnoRuntime.queryInterface(com.sun.star.frame.XComponentLoader.class, oDesktop);
com.sun.star.beans.PropertyValue[] szEmptyArgs = new com.sun.star.beans.PropertyValue[0];
xComp = xCLoader.loadComponentFromURL(filePath, "_blank", 0, szEmptyArgs);
System.out.println(filePath);
xDoc = UnoRuntime.queryInterface(com.sun.star.text.XTextDocument.class, xComp);
xContext = null;
} catch (Exception e) {
e.printStackTrace(System.err);
Thread.currentThread();
}
}
您必须更改BootstrapSocketConnector。以下是解决方案:
for(int i = 8100; i<=65535 ; i++){
if(available(i)){
libre.xContext = BootstrapSocketConnector.bootstrap(libre.oooExeFolder, "localhost", i);
System.out.println(i);
break;
}
}
您必须更改BootstrapSocketConnector。以下是解决方案:
for(int i = 8100; i<=65535 ; i++){
if(available(i)){
libre.xContext = BootstrapSocketConnector.bootstrap(libre.oooExeFolder, "localhost", i);
System.out.println(i);
break;
}
}
findNewlyCreatedFile
,xCLoader
,xDoc
,xComp
,xContext
,szEmptyArgs
和xMCF
似乎都是应该同步的共享成员。从这张截图上看,我们不知道它的其余部分,这段代码根本不是并发安全的。您使用的是引导套接字连接吗?是的,类似这样的东西libre.xContext=BootstrapSocketConnector.Bootstrap(libre.oooExeFolder)
findNewlyCreatedFile,xCLoader
,xDoc
,xComp
,xContext
、szEmptyArgs
和xMCF
似乎是应该同步的共享成员。从这个片段的外观来看,我们不知道它的其余部分,这段代码根本不是并发安全的。您使用的是引导套接字连接吗?是的,类似这样的libre.xContext=BootstrapSocketConnector.Bootstrap(libre.oooExeFolder)