2012-04-02 2 views
5

레거시 애플리케이션을 WebSphere v.6에서 WebSphere v.8로 마이그레이션. 응용 프로그램의 web.xml에는 서블릿 선언 만 포함되지만 서블릿 매핑은 포함되지 않습니다. 그러나 서블릿 매핑이없는 모든 서블릿은 기본 URL 패턴/서블릿/[서블릿 이름]으로 액세스 할 수 있습니다. 느슨한 기본 매핑WebSphere 8, web.xml version = "3.0", 기본 서블릿 매핑?

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     **version="3.0"**> 

서블릿을하고 명시 적으로 매핑 될이 404 페이지를 찾을 수 없습니다 것이 필요합니다 web.xml 파일이 속성 버전으로 업데이트 된 경우에는 WAS8에, "3.0"로 설정합니다.

서블릿 3.0 또는 적어도 WebSphere 8에서 모든 서블릿에 대한 기본 URL 패턴을 정의 할 수있는 방법이 있습니까? Tomcat 용 InvokerServlet이 있습니다. WebSphere v.8 용 버전이 있습니까?

답변

3

WebSphere의 이전 버전은 독점적 인 ibm-web - *. xmi 설명자를 사용하여 공급 업체 특정 배치 옵션을 정의합니다. 그러나 v8.0부터 .xmi 파일에 대한 지원은 중단되었습니다 (서블릿 "2.4"로 선언 된 응용 프로그램의 하위 호환성을 위해 여전히 지원됨).

<?xml version="1.0" encoding="UTF-8"?> 
<com.ibm.ejs.models.base.extensions.webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:com.ibm.ejs.models.base.extensions.webappext="webappext.xmi" xmi:id="WebApp_ID_Ext" reloadingEnabled="true" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="true"> 
    <webApp href="WEB-INF/web.xml#cchange"/> 
    <extendedServlets xmi:id="ServletExtension_1"> 
    <extendedServlet href="WEB-INF/web.xml#Servlet_1"/> 
    </extendedServlets> 
    <jspAttributes xmi:id="JSPAttribute_1" name="keepgenerated" value="true"/> 
    <jspAttributes xmi:id="JSPAttribute_1333518196516" name="reloadEnabled" value="true"/> 
    <jspAttributes xmi:id="JSPAttribute_1333518196517" name="reloadInterval" value="10"/> 
</com.ibm.ejs.models.base.extensions.webappext:WebAppExtension> 

그래서 속성이 = "true"를 serveServletsByClassnameEnabled 서블릿 매핑하지 않고 이름으로 기존 응용 프로그램지도 서블릿을했다 : 나는 마이그레이션 된 이전 응용 프로그램은 WEB-INF에 다음 IBM-웹 ext.xmi가 포함되어 있습니다. 응용 프로그램이 servlet 3.0 인 경우 지원되지 않습니다.

3

원하는 것을 수행하는 방법이 있습니다. Servlet 3.0의 경우, ibm-web-ext.xmi 파일은 ibm-web-ext.xml로 대체되며 사용자가 언급 한 설정을 적용 할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?><web-ext 
xmlns="http://websphere.ibm.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd" 
version="1.0"> 

<reload-interval value="3"/> 
<enable-directory-browsing value="false"/> 
<enable-file-serving value="true"/> 
<enable-reloading value="true"/> 
<enable-serving-servlets-by-class-name value="true" /></web-ext> 

더 읽기 EJB 3.0 application bindings overview를 살펴 : 여기 ibm-web-ext.xml 파일에 대한 샘플 코드입니다.