2012-01-26 32 views
6

kimse sadece "JSR-168 uyumlu" olmak vs portlet "JSR-286 uyumlu" kılan özlü özeti bağlantısını var mı. Spesifikasyonun bir kopyasına sahibim ve bu ancak özlü bir şey değil, bu yüzden spesifikasyonları birleştirmek yararlı bir cevap değildir. İnterneti bir saatliğine araştırdım ve net olan hiçbir şey bulamadım (özelliklerin yanı sıra, önceki özellikleri de okumanızı gerektirir ve sonra "yeni özellikler" in "gerekli" olması gerekir) uyumluluk "Liferay kullanan kişilerden geldiği anlaşılan ve Liferay 'in bir web.xml içinde bırakıldığını fark etmeyen web.xml gereklilikleri üzerinde oldukça fazla kafa karışıklığı olduğunu farkettim." .Portlet JSR-286 uyumlu ne yapar?

: onları

Do JSR-286 portlets require a web.xml file in their WAR files?

sevdiğim gerçekten söylesem aşağıdaki listelerden birini veya birkaçını içeren bir şeydir Eğer bir JSR-168 yapmak zorunda

  • şeyler bir başka şekilde JSR-286 uyumlu portlet sadece JSR-168 olarak kabul edilmesine neden olur yapmanız gerektiğini JSR-286 uyumlu
  • şeyler haline yapmak.

Bu kısmı açık olarak gördüğümden, listeden "portlet-app_2_0.xsd kullanın" seçeneğini bırakabilirsiniz.

Her iki listenin portlet.xml için DTD/xsd'nin dışında boş olduğunu ve farkın yalnızca portalın desteklediği zamanda olduğunu, ancak lütfen bu bağlantıyı bir bağlantı veya başka bir referansla desteklediğine yanıt veriyorum .

Önem verdiğim nedenden dolayı Liferay'deki Vaadin portletleri ile ilgili yayınları görüyorum ki bu JSR-168 portletleri için bazı özelliklerin mevcut olmadığını gösteriyor ... Liferay'deki bazı mantık, portletin hangi sürümüne bağlı olarak değişebilir. xml görüyor, ama ben de doğrulamadım ki, bu da ilginç bilgiler olurdu, ama soruma cevap değil.

+0

Aşağıdaki yorumuma bağlı olduğum forum gönderisini yeniden okudum, posterin "uyumlu portletler" hakkında konuşmasına rağmen, bu farkların ApplicationPortlet2 ile ilişkilendirildiğini fark ettim. Bunu zaten genişletdim, sanırım bahsettikleri faydaları elde ediyorum. Bununla birlikte, hala "JSR 286 uyumlu portlet" ibaresinin bir anlamı olup olmadığını merak ediyorum (aşağıda belirtilen geriye dönük uyumsuzlukların dışında). – Gus

cevap

3
this doc göre

, ama aynı zamanda jsr286 bahsedilenleri:

JSR 286 spektrumu (Portlet'i 2.0) JSR168 (Portletini 1.0) ile ikili uyumluluk kesilmez. Bu, Portlet 1.0 belirtimine karşı yazılan tüm portletlerin değişmeden çalışabileceği anlamına gelir. Bu kuralın tek istisnası şunlardır:

renderResponse.setContentType artık getWriter veya getOutputstream çağırmadan önce gereklidir. JSR168'de, daha önce içerik türünü ayarlamadan getWriter veya getOutputstream çağrısı, bir IllegalStateException ile sonuçlandı. Birlikte verilen servlet için

getProtocol /JSP'lerin ‘/ 1.1 HTTP’, JSR168, bu boş döndü döndürür.

Yani sürece JSR168 portlet getProtocol() tarafından döndürülen değere bağlı değildir olarak güvendesin (yani her JSR168 portletiniz JSR286 portlettir). Gördüğünüz

mesaj JSR286 daha yeni Spec ve jsr268 portleti bir JSR168 portlet yapmak bazı özellikler olduğu gibi mantıklı görünmektedir. Ben burada benim cevap listeleri başlayacağız (kenara ek hizmetler ve kullanmaktan) bir 1,0 portletten bir 2,0 portleti ayıran yeni bir şey bulamadı ettik beri

+0

Evet, bu bölümün bölümünü gördüm ve biraz farklı bir soruya cevap veriyor. Bu, "Portlet, 286 uyumlu bir portalda çalışıyor mu?" Sorusunu yanıtlıyor. Ancak, "portekiz portleti" çalıştırırken "286 uyumlu portlet" den söz eden insanlara baktığımı görüyorum. Bu, 168 portletin çalışabileceği gibi, farklı bir şekilde cankurtaran tarafından tedavi ediliyor: https: // vaadin. com/forum/-/message_boards/view_message/131405 # _19_message_151875 – Gus

+0

Cevabınız cevabımın bir kısmını içeriyor, bu yüzden şimdilik sizi destekledim. Hala tam bir cevap sayıp saymayacağına karar vermeye çalışıyorum. Bence problemin bir kısmı diğer yazılarda yer alan ifadeler tarafından yanıltılmış olmama neden olmuştu ve daha büyük bir fark olduğunu düşünüyordum, bu yüzden muhtemelen ilk etapta soruma bir cevap gelmedi. Hiç kimse benim listeme hiç kimse ekleyemezse, bana yeni bir bilgi olmasa bile size daha fazla kredi verebilirim, ancak daha önce bulmuş olduğum ama sorumu göz ardı ettiğim bir şey. – Gus

+0

evet, bu çok yanıltıcı. her neyse ben jsr168 hakkında jsr286, özellikle liferay bağlamında son sürümünden 4 yıl sonra dikkat etmeniz gerektiğini düşünmüyorum. – soulcheck

1

Tamam,.

Yapmalıdır:

  1. portlet.xml için 2.0 XSD Uygunluk (xmlns = "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd")

yapın Atmamalı:

  1. renderResponse.setContentType henüz çağrılmadı eğer getWriter istisna atma güvenin.
  2. dönen getProtocol() güvenin (zaten pek mümkün görünüyor) boş

görüşünüzü basitçe portlet.xml dönüştürmek eğer iki öğe dayanıyordu sürece, artık "286 uyumlu" etmenin yolu yoktur Program akışınız için ikinci liste. Başka bir şey bulamıyorum, ancak birisi bu listeler için başka bir öğe buluyorsa, lütfen düzenleyin.