我使用了线程,将web services里函数直接做成java小程序调用是可以的。
但是调用web services不行。
线程:
class ThreadClass extends Thread
{
     String ThreadIPStr;
     String ThreadISBNString;
     String Threadlanguage;
     String Resultstr="";
     String Strtimes=null;
     public ThreadClass(String IPStr,String ISBNString,String language)
    {  
  
ThreadIPStr = IPStr;
ThreadISBNString=ISBNString;
Threadlanguage=language;
    }

   protected String CombinationXml(String Strip, String ISBNStr,String language)
  {
String XMLISBNStr = "";
long beginTime = System.currentTimeMillis();
try {
         Integer  time=new Integer(1000);
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(Strip));
call.setOperationName("GetisoresXML");
call.setTimeout(time);
XMLISBNStr = (String) call.invoke(new Object[]  {ISBNStr,language,"1"});
    } 
          catch (Exception exp) {
    XMLISBNStr= "";
           }
if(!XMLISBNStr.equals(""))
{
     long endTime  = System.currentTimeMillis();
     long tt=endTime - beginTime;
     float differeceDay =(float)(tt)/(1000);
     Strtimes=differeceDay+ "";
     }
    else
    {
Strtimes="";
    }
return XMLISBNStr;
}

public void run()
{

Resultstr=CombinationXml(ThreadIPStr, ThreadISBNString, Threadlanguage);

}
        public String GetResult() {
            return Resultstr;
        }
    
        public String GetStrtimes() {
            return Strtimes;
        }}
调用线程的地方
ThreadClass[] thread=new ThreadClass[Recount];
................
try {
cons = LightDishCenterMain.getConnection();
stms = cons.createStatement();
String SQL = "select SchoolIP,SchoolPort from timerreap ";
results = stms.executeQuery(SQL);
while (results.next()) {
IPStr = results.getString("SchoolIP").trim();
PortStr = results.getString("SchoolPort").trim();
if ((NumIP != Trans(IPStr))&& (Trans(CenterIP) != Trans(IPStr)))  
{
 IPStr = "http://" + IPStr + ":"+                         PortStr+ "/Poservice/LightDishCenterMain.jws";
thread[k]=new ThreadClass(IPStr, ISBNString,language);
thread[k].start();
k++;
}
      } 
      try
{
    for (int t=0; t<k; t++) 
    {
thread[t].join();
if(i==1)

    strs[t+1] = thread[t].GetResult();
    timeStrs[t+1] =thread[t].GetStrtimes();
}
else
{  strs[t] = thread[t].GetResult();
   timeStrs[t] =thread[t].GetStrtimes();
}
      }
          
   }
 catch (InterruptedException e)
{
   e.printStackTrace();
}
 finally {
Thread.currentThread().interrupt();
}

XMLStrISBN = SearchResult(strs);
return XMLStrISBN;
.............