2011-11-11 197 views
-1

我必須使用Ubuntu 11.10 32位下的Tomcat 7和Axis2來爲Java語言中的類實現一個實現。java客戶端web服務器連接到多個web服務器

要求是製作一個簡單的註冊,註冊和取消註冊過程的動態web服務器項目。此外,每個教員都會處理他們的課程,學生將能夠連接到所有院系的所有課程。

serverImp.java 

class serverImp{ 
    HashMap<String,Intager> courses; 
    public String register(String courseID){ 
     int tmp=courses.get(coursesID); 
     courses.add(coursesID,tmp-1); 
    } 

    public String register(String courseID){ 
     int tmp=courses.get(coursesID); 
     courses.add(coursesID,tmp+1); 
    } 

} 

這只是一個例子,有更多的web服務器的功能。現在我必須用不同的名字多次運行相同的實現。

例如:

  • 本地主機:8080 /藝術/
  • 本地主機:8080 /工程

我所做的這一切,我可以做一個客戶端一個服務器,但現在的問題是,我如何使Web服務器客戶端與所有這些服務器只使用一個存根工作?

+0

聽起來像功課? – Jaydee

+0

種,它是一個課程項目。這是該項目的一部分 – user8580

回答

0

問題解決了。只需通過將URL從服務器更改爲另一臺服務器來修改存根。
我所做的是添加入存根

private static String serverID; 
public static void setServer(String name){ 
    serverID=name; 
} 

改變構造方法的URL 「loclhost:8080 /藝術/ ......」「loclhost:8080 /」 + serverID +「/ ......」


在client.java我做

public class client { 
private static ServerStub stub; 
public static void main(String[] args) { 
    try { 
     stub.setServer("Art"); 
     stub= new ServerStub(); 
     Register reg= new Hello(); 
     reg.setName("Art101"); 
     RegisterResponse replay= stub.register(reg); 
     System.out.println(replay.get_return()); 

     stub.setServer("Eng"); 
     stub= new ServerStub(); 
     Register reg= new Hello(); 
     reg.setName("com201"); 
     RegisterResponse replay= stub.register(reg); 
     System.out.println(replay.get_return());    
    } catch (AxisFault e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (RemoteException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

}}