1

感謝任何能解答這些疑問的人。J2EE應用程序服務器如何提供單個WebService調用

在項目的編碼會話期間,我遇到了疑問。

我的疑問是,標題如何表明J2EE應用服務器如何提供單個WebService調用。

當客戶端對WS進行調用時,J2EE AS會創建一個新線程來提供服務?我不需要擔心多個同時調用WS實現,對吧? (這是Java中的操作和方法)

另一個疑問是關於Spring中的@Autowired(使用默認情況下的singleton實例化)。

在這個Web應用程序中,我以通常的方式在web.xml中創建了一個Spring Context,我使用ContextLoaderListener Spring類將通常的標記引用到context-spring-xml配置文件中。 例如:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     classpath:spring-conf/spring-context.xml 
    </param-value> 
</context-param> 

在這種情況下,每艘@Autowired(含單身),我已經爲整個應用程序服務器的單個實例豆?或者每次進行WS調用時都會創建一個線程,並且單個線程在Spring xml配置文件中具有每個已定義bean的單個實例?

讓我們考慮一下,ServiceImplementation類是一個Spring bean本身,作爲單例管理。

我們使用Apache Camel作爲ESB公開服務Consumer作爲SpringRouteBuilder類。

在此先感謝您的答覆。

A.

回答

0

當一個WS調用是由客戶端進行,在J2EE作爲創建一個新的線程來服務呢?我不需要擔心多個同時調用WS實現,對吧?

權。但是你必須擔心你的@Autowired單線程安全。 請求/響應過程中不得使用任何實例變量。它可能只有配置/設置屬性。

在這種情況下,對於@Autowired(使用singleton)的每個bean,我有整個Application Server的單個實例嗎?

不對。 它不適用於整個AS。它在您的Web應用程序的範圍內。這是關於應用程序相互隔離的問題。 這意味着,當兩個不同的Web應用程序的Spring上下文(例如WAR中的web.xml中的spring-context.xml)中定義相同的@Autowired類時 - 每個應用程序的Spring上下文將擁有自己的單例。

相關問題