我一直在寻找在OpenNTF上发布的例子 - http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Threads%20and%20Jobs我的问题是我似乎无法引用另一个类,它是创建初始线程的主类之外。Xpage Threads - 无法访问其他类
我试图使用基于演示代码(它工作正常顺便说一句)代码 - 我尝试过不同的变化,包括尝试从内部类中调用广播类,并在这种情况下从外部类。在任何情况下,我都会得到一个ClassNotFoundException - 注意Broadcast类与此ThreadSample在同一个包中。
public class ThreadSample {
private MyThread myThread;
public boolean isRunning() {
return myThread != null;
}
public void startThread()
throws NotesException {
if (myThread != null) {
stopThread();
}
try {
{
if (myThread == null) {
myThread = new MyThread();
myThread.start();
}
System.out.println("Thread started");
}
} catch (Throwable t) {
t.printStackTrace();
}
}
public void stopThread() {
if (myThread != null) {
synchronized (ThreadSample.class) {
if (myThread != null) {
myThread.stopRequest = true;
myThread = null;
System.out.println(" >> Thread stopping");
}
}
}
}
public void test(){
System.out.println("HERE in Test");
Broadcast.test_subscribe();
}
class MyThread extends Thread {
boolean stopRequest;
private ThreadSessionExecutor<IStatus> executor;
MyThread() throws NotesException {
this.executor = new ThreadSessionExecutor<IStatus>() {
@Override
protected IStatus run(Session session) throws NotesException {
try {
System.out.println(" >> Thread running here");
ThreadSample.this.test_subscribe();
System.out.println(" >> After test call");
} catch (Throwable ex) {
ex.printStackTrace();
}
return Status.OK_STATUS;
}
};
}
public void run() {
while (!stopRequest) {
try {
executor.run();
} catch (Exception ex) {
}
}
System.out.println("Thread left");
}
}
}
感谢菲利普我会尝试,并将其部署为一个插件,看看它是如何去。 – markbarton
您是否有创建和部署不适用于UIComponent的插件的链接?我在这里查看了这些教程http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_an_XPages_Library,但它们适用于一个UI组件。 基于纯代码的插件是否一样? – markbarton
查看XSP入门套件:http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XSP%20Starter%20Kit –