我在axis2上有一個webservice,並且在這個類中有一個函數啓動一個線程,另一個函數檢查線程是否仍在運行,但是當我做一個請求時,線程檢查的函數仍在運行,我得到這個錯誤:nullpointerexception axis2 webservice
org.apache.axis2.AxisFault:試圖在組織在org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) 來調用服務方法isTaskRunning 發生異常.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) at be.kdg.cosys.thesis.AllToPublicScheduler.executeTask(AllToPublicScheduler.java:158) at be.kdg.cosys.thesis.AllToPublicScheduler.incomingApplication(AllToPublicScheduler.java:106) at be.kdg。 cosys.thesis.ParserToScheduler.run(ParserToScheduler.java:111) 在java.lang.Thread.run(來源不明)
這裏是WebService類:
公共類執行人{
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;
}
}
在Web服務的服務器,我收到了nullpointerexeception(日誌卡特琳娜的)
誰能幫助我?
約裏克
感謝您的回覆。如果我在同一個ExecutorStub上調用2個函數,它會不同嗎? Yorick – 2013-02-14 15:03:30
@YorickDeBock - 編號服務器端Web服務類可以被視爲Servlets。每個調用都在一個單獨的線程上完成。請參閱鏈接:http://www.coderanch.com/t/568548/Web-Services/java/multiple-users-call-web-services – user1428716 2013-02-14 16:12:55