<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
  <link rel="self" href="https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=117959344" />
  <subtitle>Exception - Liferay Portlet3 Requires 3.0 opt-in</subtitle>
  <id>https://uat.liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=117959344</id>
  <updated>2026-10-15T10:47:55Z</updated>
  <dc:date>2026-10-15T10:47:55Z</dc:date>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=120102601" />
    <author>
      <name>Mirko Romstadt</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=120102601</id>
    <updated>2020-10-16T10:04:46Z</updated>
    <published>2020-10-16T10:04:46Z</published>
    <summary type="html">How did you fix the problem? Not using &amp;#34;javax.portlet.version=3.0&amp;#34; at all?</summary>
    <dc:creator>Mirko Romstadt</dc:creator>
    <dc:date>2020-10-16T10:04:46Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118777600" />
    <author>
      <name>Aldo De Vleeschauwer</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118777600</id>
    <updated>2020-03-20T11:20:19Z</updated>
    <published>2020-03-20T11:20:19Z</published>
    <summary type="html">None of the Liferay portlets have &amp;#34;javax.portlet.version=3.0&amp;#34; set, so no help in using the Liferay code as an example.The issues happens typically when using PortletURLFactoryUtil because the PortletURLImpl.java code checks the portlet(ID) version and decides that _portletSpecMajorVersion == 3. So it sets up the PortletURLImpl as a 3.0 version. BUT the request that gets passed around is _portletSpecMajorVersion &amp;lt; 3 (because the request is from on of the Liferay portlets) so this throws an exception down the line.</summary>
    <dc:creator>Aldo De Vleeschauwer</dc:creator>
    <dc:date>2020-03-20T11:20:19Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118364538" />
    <author>
      <name>Aldo De Vleeschauwer</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=118364538</id>
    <updated>2020-01-29T09:57:18Z</updated>
    <published>2020-01-29T09:57:18Z</published>
    <summary type="html">We have the same issue, it looks like the Request object that is passed to the AssetRenderer is not 3.0.</summary>
    <dc:creator>Aldo De Vleeschauwer</dc:creator>
    <dc:date>2020-01-29T09:57:18Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117963842" />
    <author>
      <name>Filipe Santana</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117963842</id>
    <updated>2019-12-03T17:40:15Z</updated>
    <published>2019-12-03T17:40:15Z</published>
    <summary type="html">Hi Jamie. That&amp;#39;s fine. Same impression here... Thanks.</summary>
    <dc:creator>Filipe Santana</dc:creator>
    <dc:date>2019-12-03T17:40:15Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117963503" />
    <author>
      <name>Jamie Sammons</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117963503</id>
    <updated>2019-12-03T17:37:26Z</updated>
    <published>2019-12-03T17:37:26Z</published>
    <summary type="html">Hi Filipe,&lt;br /&gt;My apologies I missed the fact that you already had &lt;strong&gt;javax.portlet.version=3.0 &lt;/strong&gt;set in the app.  What&amp;#39;s strange is it appears to be the Asset Publisher that is displaying the error.&lt;strong&gt;&lt;/strong&gt;</summary>
    <dc:creator>Jamie Sammons</dc:creator>
    <dc:date>2019-12-03T17:37:26Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117961159" />
    <author>
      <name>Filipe Santana</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117961159</id>
    <updated>2019-12-03T17:31:53Z</updated>
    <published>2019-12-03T17:31:53Z</published>
    <summary type="html">Hello Jamie,I could not found any other property to set.Do you know which one is missing from my configuration?&lt;br /&gt;Thank you</summary>
    <dc:creator>Filipe Santana</dc:creator>
    <dc:date>2019-12-03T17:31:53Z</dc:date>
  </entry>
  <entry>
    <title>RE: Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117960814" />
    <author>
      <name>Jamie Sammons</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117960814</id>
    <updated>2019-12-03T17:26:11Z</updated>
    <published>2019-12-03T17:26:11Z</published>
    <summary type="html">Hi Filipe,&lt;br /&gt;&lt;br /&gt;It looks like you may need to set an addtional property to enable portlet 3.0: &lt;a href="https://portal.liferay.dev/docs/7-1/reference/-/knowledge_base/r/breaking-changes#upgrade-considerations"&gt;https://portal.liferay.dev/docs/7-1/reference/-/knowledge_base/r/breaking-changes#upgrade-considerations&lt;/a&gt;</summary>
    <dc:creator>Jamie Sammons</dc:creator>
    <dc:date>2019-12-03T17:26:11Z</dc:date>
  </entry>
  <entry>
    <title>Exception - Liferay Portlet3 Requires 3.0 opt-in</title>
    <link rel="alternate" href="https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117959343" />
    <author>
      <name>Filipe Santana</name>
    </author>
    <id>https://uat.liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=117959343</id>
    <updated>2019-12-03T15:33:16Z</updated>
    <published>2019-12-03T15:33:16Z</published>
    <summary type="html">&lt;html&gt;&lt;head&gt;&lt;/head&gt;&lt;body&gt;Hi everyone.I'm trying to enable portlet 3.0 in my app, using Liferay 7.2 CE.&lt;br&gt;I've already configure my Portlet class like this&lt;br&gt;&lt;br&gt;&lt;pre&gt;&lt;code&gt;@Component(
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;immediate = true,
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;property = {
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"com.liferay.portlet.display-category=category.hidden",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"com.liferay.portlet.scopeable=true",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.display-name=Guestbooks",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.expiration-cache=0",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.init-param.portlet-title-based-navigation=true",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.init-param.template-path=/",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.init-param.view-template=/guestbook_admin/view.jsp",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.name=" + GuestbookPortletKeys.GUESTBOOK_ADMIN,
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.resource-bundle=content.Language",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.security-role-ref=administrator",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.supports.mime-type=text/html",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"com.liferay.portlet.add-default-resource=true",
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;"javax.portlet.version=3.0"
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;},
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;service = javax.portlet.Portlet.class
)&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;However I still getting the following exception:&lt;pre&gt;&lt;code&gt;2019-12-03 15:23:09.182 ERROR [http-nio-8080-exec-4][IncludeTag:128] Current URL /web/guest/home/-/asset_publisher/P3UE1H5OERI4/guestbook/id/33615?_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_P3UE1H5OERI4_redirect=http%3A%2F%2Flocalhost%3A8080%2Fweb%2Fguest%2Fhome%3Fp_p_id%3Dcom_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_P3UE1H5OERI4%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_P3UE1H5OERI4_cur%3D0%26p_r_p_resetCur%3Dfalse%26_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_P3UE1H5OERI4_assetEntryId%3D33615 generates exception: java.lang.UnsupportedOperationException: Requires 3.0 opt-in
java.lang.UnsupportedOperationException: Requires 3.0 opt-in
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletRequestImpl.getRenderParameters(PortletRequestImpl.java:522)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLImpl._initMutableRenderParameters(PortletURLImpl.java:1607)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLImpl.&amp;lt;init&amp;gt;(PortletURLImpl.java:1280)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLImpl.&amp;lt;init&amp;gt;(PortletURLImpl.java:119)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.RenderURLImpl.&amp;lt;init&amp;gt;(RenderURLImpl.java:43)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLFactoryImpl._create(PortletURLFactoryImpl.java:236)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLFactoryImpl._create(PortletURLFactoryImpl.java:248)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portlet.internal.PortletURLFactoryImpl.create(PortletURLFactoryImpl.java:173)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portal.kernel.portlet.PortletURLFactoryUtil.create(PortletURLFactoryUtil.java:115)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.docs.guestbook.web.internal.asset.GuestbookAssetRenderer.getURLViewInContext(GuestbookAssetRenderer.java:149)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.apache.jsp.view_005fasset_005fentry_005ffull_005fcontent_jsp._jspService(view_005fasset_005fentry_005ffull_005fcontent_jsp:348)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portal.osgi.web.servlet.jsp.compiler.internal.JspServlet.service(JspServlet.java:369)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at com.liferay.portal.osgi.web.servlet.jsp.compiler.internal.JspServlet.service(JspServlet.java:381)
&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
&amp;lt;/init&amp;gt;&amp;lt;/init&amp;gt;&amp;lt;/init&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br&gt;Could anyone help me, please?&lt;br&gt;ThanksFilipe Santana&lt;/body&gt;&lt;/html&gt;</summary>
    <dc:creator>Filipe Santana</dc:creator>
    <dc:date>2019-12-03T15:33:16Z</dc:date>
  </entry>
</feed>
