У меня есть веб-сервис на оси2, и в этом классе функция запускает поток, другая функция проверяет, продолжает ли поток, но когда я делаю запрос для функции, которая проверяет поток, все еще выполняется , я получаю эту ошибку:nullpointerexception axis2 webservice
org.apache.axis2.AxisFault: произошло исключение при попытке вызова метода службы isTaskRunning в org.apache.axis2.util.Utils.getInboundFaultFromMessageContext (Utils.java:531) в орг .apache.axis2.description.OutInAxisOperationClient.handleResponse (OutInAxisOperation.java:375) at org.apache.axis2.description.OutInAxisOperationClient.send (OutInAxisOperation.java:421) at org.apache. axis2.description.OutInAxisOperationClient.executeImpl (OutInAxisOperation.java:229) at org.apache.axis2.client.OperationClient.execute (OperationClient.java:165) at be.kdg.cosys.thesis.ExecutorStub.isTaskRunning (ExecutorStub. Java: 487) на be.kdg.cosys.thesis.AllToPublicScheduler.executeTask (AllToPublicScheduler.java:158) на be.kdg.cosys.thesis.AllToPublicScheduler.incomingApplication (AllToPublicScheduler.java:106) на be.kdg. cosys.thesis.ParserToScheduler.run (ParserToScheduler.java:111) на java.lang.Thread.run (Unknown Source)
Вот это класс вебсервис:
класс Executor общественности {
private Task task = null;
private long startTime = 0;
private long runTime = 0;
private Thread taskThread=null;
public void execute(byte[] object){
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new ByteArrayInputStream(object));
task = (Task) in.readObject();
in.close();
} catch (IOException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
runTime = task.getRunTime();
startTime = System.currentTimeMillis();
taskThread=new Thread(task);
taskThread.start();
}
public long timeToFinish()
{
return runTime-(System.currentTimeMillis()-startTime);
}
public boolean isTaskRunning()
{
return taskThread.isAlive();
}
public byte[] getTask()
{
byte[] ser=null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
out = new ObjectOutputStream(bos);
out.writeObject(task);
ser = bos.toByteArray();
out.close();
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ser;
}
}
На сервере веб-сервиса я получаю nullpointerexeception (журнал Catalina)
Может кто-нибудь мне помочь?
Йорик
Спасибо за ваш ответ. Разве это не так, если я назову 2 функции на том же ExecutorStub? Yorick –
@YorickDeBock - № Класс веб-служб на стороне сервера можно рассматривать как сервлеты. Каждый вызов выполняется в отдельном потоке. См. Ссылку: http://www.coderanch.com/t/568548/Web-Services/java/multiple-users-call-web-services – user1428716