2017-05-17 25 views
1

如何列出部署在服務器上的所有Web服務?是否有任何全局命令用於列出相同的?在共同有什麼辦法列出應用程序中的所有Web服務?

就像在我的服務,我有以下路徑:

path="vms/CaseServices" 
path="vms/ActivityServices" 
path="vms/FileDownloadServices" 

,並對其進行訪問,我使用

http://localhost:8080/vms/CaseServices?wsdl 

但如何列出服務器上所有可用的網絡服務,無論是使用Java碼?

+0

我敢打賭,根據服務器的不同,存在一個包含'Servlet'路徑,'Filter'路徑,以及'WebService'的XML,以便您可以讀取該XML來獲取所有WS。現在,我不知道它是否屬實,我應該在應用程序服務器上部署'ear' /'war'後檢查映射是如何存儲的。 – AxelH

+0

PS:當然,如果你自己定義了'web。 xml'文件來創建映射,這很容易做到,但是使用註釋......這並不簡單。 – AxelH

回答

2

在騾子您可以用變壓器做到這一點:

public class HttpPathsTransformer extends AbstractMessageTransformer { 

    @Override 
    public Object transformMessage(MuleMessage message, String encoding) throws TransformerException { 
     StringBuilder sb = new StringBuilder("paths: "); 
     Collection<DefaultHttpListener> listener = muleContext.getRegistry().lookupObjects(DefaultHttpListener.class); 
     for (DefaultHttpListener l : listener) { 
      logger.info("path: " + l.getPath()); 
      sb.append(System.lineSeparator()).append(l.getPath()); 
     } 

     return sb.toString(); 
    } 

} 

日誌的路徑和將它們作爲一個字符串。

這些都是http路徑,不僅僅是web服務。

+0

但是如何訪問這個? – fatherazrael

+0

在流中放置一個JavaTransformer(* not * JavaComponent)並引用上面的類。 –

相關問題