2012-04-02 10 views
5

Eski bir uygulamayı WebSphere v.6'dan WebSphere v.8'e geçirmek. Uygulamanın web.xml'si yalnızca servlet bildirimleri içeriyor, ancak sunucu eşlemelerini içermiyor. Yine de, sunucu-haritalandırması olmayan tüm sunuculara varsayılan URL modeli/sunucu/[sunucu adı] tarafından erişilebilir. Gevşek varsayılan eşlemeWebSphere 8, web.xml version = "3.0", varsayılan sunucu-mapping?

<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"**> 

servlet ve açıkça aksi eşlenebilmesi o 404 sayfa bulunamadı değil gerekir: web.xml nitelik sürümü ile güncellendi Ancak, WAS8 üzerine, "3.0" olarak ayarlanmış.

Tüm servletler için varsayılan URL modeli tanımlamak için, sunucu 3.0 veya en azından WebSphere 8'de bir yol var mı? Tomcat için InvokerServlet var, WebSphere v.8 için bir sürümü var mı?

cevap

3

WebSphere'in tescilli ibm-web - *. Xmi tanımlayıcılarının eski sürümlerini, satıcıya özel dağıtım seçeneklerini tanımlamak için kapatır. Bununla birlikte, v8.0'dan beri .xmi dosyalarının desteği düşmüştür (yine de, sunucu uygulaması "2.4" olarak bildirilen uygulamalarda geriye dönük uyumluluk için hala desteklenmiştir).

<?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> 

böylece niteliği = "true" serveServletsByClassnameEnabled servlet-mapping olmadan adıyla eski uygulama haritası servlet yaptı: Ben göç oldu eski uygulama WEB-INF aşağıdaki ibm-web ext.xmi içeriyordu. Uygulama, sunucu uygulaması 3.0 ise bu desteklenmez.

3

Cevabınıza bakmak istediğinizi yapmanın bir yolu vardır. Servlet 3.0 için, ibm-web-ext.xmi dosyası, ibm-web-ext.xml ile değiştirilir ve bahsettiğiniz ayarlar uygulanabilir.

<?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> 

Daha fazlasını okumak için EJB 3.0 application bindings overview bakmak: Burada ibm-web-ext.xml dosya için bir örnek kod verilmiştir.

İlgili konular