1. 程式人生 > >spring如何使用多個xml配置檔案

spring如何使用多個xml配置檔案

1, 在web.xml中定義 contextConfigLocation引數.spring會使用這個引數載入.所有逗號分割的xml.如果沒有這個引數,spring預設載入web-inf/applicationContext.xml檔案.


<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:conf/spring/applicationContext_core*.xml,
classpath*:conf/spring/applicationContext_dict*.xml,
classpath*:conf/spring/applicationContext_hibernate.xml,
classpath*:conf/spring/applicationContext_staff*.xml,
classpath*:conf/spring/applicationContext_security.xml
classpath*:conf/spring/applicationContext_modules*.xml
classpath*:conf/spring/applicationContext_cti*.xml
classpath*:conf/spring/applicationContext_apm*.xml
</param-value>
</context-param> 



contextConfigLocation 引數定義了要裝入的 Spring 配置檔案。原理說明如下:
、利用ServletContextListener 實現。
Spring 提供ServletContextListener 的一個實現類ContextLoaderListener ,該類可以作
為listener 使用,它會在建立時自動查詢WEB-INF/ 下的applicationContext.xrnl 檔案。因
此,如果只有一個配置檔案,並且檔名為applicationContext.xml ,則只需在web.xml
檔案中增加如下程式碼即可:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>
如果有多個配置檔案需要載入,則考慮使用<context-para即元素來確定配置檔案的
檔名。由於ContextLoaderListener載入時,會查詢名為contextConfigLocation的引數。
因此,配置context-param時引數名字應該是contextConfigLocation。
帶多個配置檔案的web.xml 檔案如下:
<1-- XML 檔案的檔案頭二〉
<?xml version="l.O" encoding="工80-8859-1"?>
< 1-- web.xm1 檔案的DTD 等資訊一〉
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems. 工口c.//DTD Web Application 2.3//EN"
''http://java.sun.com/dtd/web-app_2_3.dtd''>
<web-app>
<!一確定多個配置檔案>
<context-param>
<1-- 引數名為contextConfigLocation…〉
<param-name>contextConfigLocation</param-name>
<!一多個配置檔案之間以,隔開二〉
<param-value>/WEB-工NF/daoContext.xml./WEB-INF/application
Context.xml</param-value>
</context-param>
<!-- 採用listener建立Applicat工onContext 例項-->
<listener>
<listener-class>org.spr工ngframework.web.context.ContextLoader
Listener</listener-class>
</listener>
</web-app>


如果沒有contextConfigLocation 指定配置檔案,則Spring 自動查詢application
Context. xrnl 配置檔案。如果有contextConfigLocation,則利用該引數確定的配置檔案。
該引數指定的一個字串, Spring 的ContextLoaderListener 負責將該字串分解成多個
配置檔案,逗號","、空格" "及分號";"都可作為字串的分割符。
如果既沒有applicationContext. xrnl 檔案,也沒有使用contextConfigLocation引數確
定配置檔案,或者contextConfigLocation確定的配置檔案不存在。都將導致Spring 無法
載入配置檔案或無法正常建立ApplicationContext 例項

配置一個spring為載入而設定的servlet可以達到同樣效果.
採用load-on-startup Servlet 實現。
Spring 提供了一個特殊的Servllet 類: ContextLoaderServlet。該Servlet 在啟動時,會
自動查詢WEB-IN日下的applicationContext. xml 檔案。
當然,為了讓ContextLoaderServlet 隨應用啟動而啟動,應將此Servlet 配置成
load-on-startup 的Servleto load-on-startup 的值小一點比較合適,因為要保證Application
Context 優先建立。如果只有一個配置檔案,並且檔名為applicationContext. xml ,則在
web.xml 檔案中增加如下程式碼即可:
<servlet>
<servlet-name>context</servlet口-arne>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</
servlet-class>
<load-on-startup>l</load-o 口-startup>
</servlet>

。帶多個配置檔案的web且nl 檔案如下:
<!-- XML 檔案的檔案頭-->
<?xml version="1.0" encoding="工SO-8859-1"?>
<! -- web.xml 檔案的DTD 等資訊→
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems , 工口c.//DTD Web Application 2.3//EN"
''http://java.sun.com/dtd/web-app_2_3.dtd''>
<web-app>
<'一確定多個配置檔案一>
<context-param>
<!-- 引數名為contextConfigLocation-->
<param-name>contextConfigLocation</param-name>
<!-- 多個配置檔案之間以,隔開一〉
<param-value>/WEB-工NF/daoContext.xml, !WEB-工NF/applicationContext.
xml</param-value>
</context-param>
<!一採用load-on-startup Servlet 建立Applicat工onContext 例項一〉
<servlet>
<servlet-narne>context</servlet-narne>
<servlet-class>org.springframework.web.context.ContextLoader
Servlet</servlet-class>
<!一下面值小一點比較合適,會優先載入一〉
<load-on-startup>l</load-on-startup>
</servlet>
</web-app>




2, 使用匹配符


<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>

比如說用到Hibernate,則把hibernate相關的配置放在applicationContext-hibernate.xml這一個檔案,而一些全域性相關的資訊則放在applicationContext.xml,其他的配置類似.這樣就可以載入了,不必寫用空格或是逗號分開! 


3, 如果使用struts載入多個spring配置檔案.下面這個配置的其實也是contextConfigLocation變數.


struts-config.xml裡面加這個
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" 
value="/WEB-INF/applicationContext.xml,
/WEB-INF/action-servlet.xml,,,,,,,"/>

4,如果是非j2ee應用直接程式載入.


ApplicationContext act = new ClassPathXmlApplicationContext(new String[]{"bean1.xml","bean2.xml"});

BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(reg);

reader.loadBeanDefinitions(new ClassPathResource("bean1.xml"));

reader.loadBeanDefinitions(new ClassPathResource("bean2.xml"));

BeanFactory bf = (BeanFactory)reg;


===================================================================================================================

專案中碰到了tomgcat中可以啟動,而部署到weblogic就無法啟動的問題,報找不到applicationContext.xml 檔案,報錯為:

####<2013-2-27 下午03時29分04秒 CST> <Error> <HTTP> <wu-yw> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1361950144661> <BEA-101216> <Servlet: "context" failed to preload on startup in Web application: "allmedia".
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:180)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:269)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
	at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)
	at javax.servlet.GenericServlet.init(GenericServlet.java:241)
	at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(Unknown Source)
	at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
	at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
	at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
	at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:521)
	at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1893)
	at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1870)
	at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1790)
	at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
	at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
	at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
	at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
	at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)
	at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
	at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
	at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
	at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
	at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
	at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
	at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
	at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
	at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
	at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
	at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:99)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:167)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:148)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:126)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:126)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:89)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:269)
	at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:134)
	at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
	at org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:83)
	at javax.servlet.GenericServlet.init(GenericServlet.java:241)
	at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(Unknown Source)
	at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
	at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
	at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
	at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:521)
	at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1893)
	at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1870)
	at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1790)
	at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2999)
	at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371)
	at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
	at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117)
	at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
	at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
	at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
	at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
	at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
	at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:16)
	at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
	at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
	at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
	at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
	at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
	at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
	at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
	at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
	at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
	at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
	at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
> 


但是我的應用中並沒有這個檔案。

所以看了下上邊的文章。

web.xml

<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			/WEB-INF/e5-context.xml, 
			/WEB-INF/e5-controller.xml,
			/WEB-INF/e5-web.xml,
			/WEB-INF/e5-auth.xml,
			/WEB-INF/e5-workspace.xml,
			/WEB-INF/photoinfo-servlet.xml,
			/WEB-INF/allmedia.xml,
			/WEB-INF/allmedia-edit.xml
			<!-- ,
			/WEB-INF/e5-sso.xml -->
		</param-value>
	</context-param>

	<filter>
        <filter-name>SetCharacterEncoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
      <filter-name>SetCharacterEncoding</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
<!--ids config begin -->
<filter>
     <filter-name>TRSIdSSSOFilter</filter-name>
     <filter-class>com.trs.idm.client.filter.GeneralSSOFilter</filter-class>
</filter>
<!-- filter-mapping>
     <filter-name>TRSIdSSSOFilter</filter-name>
     <url-pattern>*.jsp</url-pattern>
</filter-mapping-->
<filter-mapping>
     <filter-name>TRSIdSSSOFilter</filter-name>
     <url-pattern>/e5workspace/*</url-pattern>
</filter-mapping>
<filter-mapping>
     <filter-name>TRSIdSSSOFilter</filter-name>
     <url-pattern>/publish/*</url-pattern>
</filter-mapping>
<!-- TRSIdS SSO Listener, use this for enable timeout-notify -->
<!-- filter>
	<filter-name>FounderUUMSAuthFilter</filter-name>  
	<filter-class>com.founder.auth.web.AuthFilter</filter-class>  
</filter-->
<!-- 
<filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5workspace/auth.do</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5workspace/keeplive.do</url-pattern>
</filter-mapping> -->
<!-- e5sso -->
<!-- filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5sys/sysAuth.do</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5permission/PermissionProxy.do</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5auth/AdminPermissionProxy.do</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>FounderUUMSAuthFilter</filter-name>
	<url-pattern>/e5sys/AppChangeProxy.do</url-pattern>
</filter-mapping>
<listener>
	<listener-class>com.founder.auth.web.LogoutSessionDestroyedListener</listener-class>
</listener-->
<!-- TRSIdS SSO Listener, use this for enable timeout-notify -->
<listener>
     <listener-class>com.trs.idm.client.listener.CoSessionListener</listener-class>
</listener>
<!-- Use this for co-application's login form action. -->	
	<servlet>
		<servlet-name>context</servlet-name>
		<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
		<servlet-name>load</servlet-name>
		<servlet-class>com.founder.e5.load.Load</servlet-class>
		<init-param>
			<param-name>config</param-name>
			<param-value>e5-config.xml</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
    </servlet>

	<servlet>
		<servlet-name>e5</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>3</load-on-startup>
	</servlet>

	<servlet>
		<servlet-name>buffalo</servlet-name> 
		<servlet-class>net.buffalo.web.servlet.ApplicationServlet</servlet-class> 
	</servlet>

	<servlet>
		<servlet-name>Jersey REST Service</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<init-param> 
			<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
			<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
		</init-param>
		<init-param>
			<param-name>com.sun.jersey.config.property.packages</param-name>
			<param-value>com.founder.api</param-value>
		</init-param>
		<load-on-startup>4</load-on-startup>
	</servlet>
<!-- Use this for co-application's login form action. -->
	<servlet>
	     <servlet-name>TRSIdSSSOProxyServlet</servlet-name>
	     <servlet-class>com.trs.idm.client.servlet.LoginProxyServlet</servlet-class>
	     <load-on-startup>100</load-on-startup>
	</servlet>
	<servlet>
	     <servlet-name>GetLongUrlServlet</servlet-name>
	     <servlet-class>com.trs.idm.client.servlet.GetLongUrlServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>Jersey REST Service</servlet-name>
		<url-pattern>/api/*</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>e5</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>buffalo</servlet-name> 
		<url-pattern>/buffalo/*</url-pattern> 
	</servlet-mapping>
	
	<mime-mapping>
		<extension>xml</extension>
		<mime-type>text/xml</mime-type>
	</mime-mapping>
	
	<servlet-mapping>
	     <servlet-name>TRSIdSSSOProxyServlet</servlet-name>
	     <url-pattern>/TRSIdSSSOProxyServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
	      <servlet-name>GetLongUrlServlet</servlet-name>
	     <url-pattern>/idsAgents/GetLongUrlServlet</url-pattern>
	</servlet-mapping>
	 <!-- ids config end -->
	<welcome-file-list>
		<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
	
	<taglib>
		<taglib-uri>http://jakarta.apache.org/taglibs/i18n-1.0</taglib-uri>
		<taglib-location>/WEB-INF/taglibs-i18n.tld</taglib-location>
	</taglib>
	<taglib>
		<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
		<taglib-location>/WEB-INF/c.tld</taglib-location>
	</taglib>
	<resource-ref>
		<description>allmedia Datasource</description> 
		<res-ref-name>jdbc/E5NEW</res-ref-name> 
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
	<!--  
	<resource-ref>
		<description>sso Datasource</description> 
		<res-ref-name>jdbc/E5SSO</res-ref-name> 
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>-->
</web-app>

原來是
<param-value>
			/WEB-INF/e5-context.xml, 
			/WEB-INF/e5-controller.xml,
			/WEB-INF/e5-web.xml,
			/WEB-INF/e5-auth.xml,
			/WEB-INF/e5-workspace.xml,
			/WEB-INF/photoinfo-servlet.xml,
			/WEB-INF/allmedia.xml,
			/WEB-INF/allmedia-edit.xml
			<!-- ,
			/WEB-INF/e5-sso.xml -->
		</param-value>
中註釋的原因,很詭異,去掉就可以啟動了。