我有一個運行在端口80上的Web應用程序,並且我有一個屬於該Web應用程序的Axis Web服務。因此,該服務也在端口80上運行。更改Axis Web服務正在偵聽的端口
但是,出於安全原因,我們的客戶要求我們將Web服務端口更改爲8080,以便他們只允許訪問該Web服務的遠程消費者的端口。因此他們將無法訪問常規Web應用程序,但可以訪問該服務。
這樣做可以不重構應用程序,並在單獨的Web應用程序中取出Web服務?
我有一個運行在端口80上的Web應用程序,並且我有一個屬於該Web應用程序的Axis Web服務。因此,該服務也在端口80上運行。更改Axis Web服務正在偵聽的端口
但是,出於安全原因,我們的客戶要求我們將Web服務端口更改爲8080,以便他們只允許訪問該Web服務的遠程消費者的端口。因此他們將無法訪問常規Web應用程序,但可以訪問該服務。
這樣做可以不重構應用程序,並在單獨的Web應用程序中取出Web服務?
正如我在評論中所說的那樣,我們的Web應用程序託管在Oracle AS 10g上,Oracle Web Cache服務器位於它的前面。 Oracle Web Cache基於Apache httpd,因此它具有虛擬主機支持和URL重寫功能(儘管這些條款並不存在)。
我設法解決這個問題:
它的功能就像一個魅力。
至於Axis本身,我沒有找到一種方法來配置它自己偵聽另一個端口。我認爲期望Axis提供這種功能是不合理的,因爲它只是一個託管在servlet容器中的servlet,而且它是容器提供連接器/傳輸層的工作。
無論如何......感謝所有提供幫助的人,我很感激。
簡短的回答可能是 - 是的,這是可能的。
Axis webservices通常足以與主應用程序解耦,應該很容易讓它們在不同的Java Web服務器實例上運行,而該實例僅在端口8080運行,如果無法配置任何Web服務器您也運行在端口8080上運行,並僅在該端口上提供Web服務。
您應該能夠使用端口8080連接器設置單獨的服務。
實際上,您將在您的實例中運行2個「mini」-Tomcats。
基本上,
<Service> <!-- normal service -->
<Connector port="80" />
</Service>
<Service> <!-- custom service -->
<Connector port="8080" />
<Engine>
<Host />
</Engine>
</Service>
它覺得這個解決方案可以提出一些調試的噩夢,如果它不工作,恰到好處,所以它可能是更容易運行第二個服務器(可能碼頭)。
什麼在運行應用程序? Tomcat的? (如果Axis今天包含它自己的Web服務器,我很抱歉 - 我認爲它以前只是一個可以在任何servlet容器中運行的servlet)。 – 2009-01-20 11:02:57