[
https://issues.apache.org/jira/browse/WW-5141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17418951#comment-17418951
]
Daniel Le Berre commented on WW-5141:
-------------------------------------
Here are the details of the files which cannot be compiled, and the updated
pom.xml for core to compile with jakarta api.
The migration tool is here: https://tomcat.apache.org/download-migration.cgi
{code:java}
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile)
on project struts2-core: Compilation failure: Compilation failure:
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/components/Include.java:[290,18]
org.apache.struts2.components.Include.PageOutputStream is not abstract and
does not override abstract method
setWriteListener(jakarta.servlet.WriteListener) in
jakarta.servlet.ServletOutputStream
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[368,43]
cannot access javax.servlet.ServletContext
[ERROR] class file for javax.servlet.ServletContext not found
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[371,43]
cannot access javax.servlet.GenericServlet
[ERROR] class file for javax.servlet.GenericServlet not found
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[374,59]
incompatible types: jakarta.servlet.ServletContext cannot be converted to
javax.servlet.ServletContext
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[386,36]
cannot access javax.servlet.http.HttpSession
[ERROR] class file for javax.servlet.http.HttpSession not found
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[392,63]
cannot access javax.servlet.http.HttpServletRequest
[ERROR] class file for javax.servlet.http.HttpServletRequest not found
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[393,53]
incompatible types: jakarta.servlet.http.HttpServletRequest cannot be
converted to javax.servlet.http.HttpServletRequest
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[403,69]
incompatible types: jakarta.servlet.http.HttpServletRequest cannot be
converted to javax.servlet.http.HttpServletRequest
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[451,51]
incompatible types: jakarta.servlet.ServletContext cannot be converted to
javax.servlet.ServletContext
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java:[455,43]
incompatible types: jakarta.servlet.ServletContext cannot be converted to
javax.servlet.ServletContext
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/util/URLBean.java:[73,53]
incompatible types: java.util.Map<java.lang.String,java.lang.String[]> cannot
be converted to java.util.Map<java.lang.String,java.lang.Object>
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java:[204,30]
no suitable method found for
isMultipartContent(jakarta.servlet.http.HttpServletRequest)
[ERROR] method
org.apache.commons.fileupload.FileUploadBase.isMultipartContent(org.apache.commons.fileupload.RequestContext)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to org.apache.commons.fileupload.RequestContext)
[ERROR] method
org.apache.commons.fileupload.FileUploadBase.isMultipartContent(javax.servlet.http.HttpServletRequest)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to javax.servlet.http.HttpServletRequest)
[ERROR] method
org.apache.commons.fileupload.servlet.ServletFileUpload.isMultipartContent(javax.servlet.http.HttpServletRequest)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to javax.servlet.http.HttpServletRequest)
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java:[215,51]
no suitable method found for
getItemIterator(jakarta.servlet.http.HttpServletRequest)
[ERROR] method
org.apache.commons.fileupload.FileUploadBase.getItemIterator(org.apache.commons.fileupload.RequestContext)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to org.apache.commons.fileupload.RequestContext)
[ERROR] method
org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(javax.servlet.http.HttpServletRequest)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to javax.servlet.http.HttpServletRequest)
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java:[259,147]
incompatible types: java.util.Map<java.lang.String,java.lang.String[]> cannot
be converted to java.util.Map<java.lang.String,java.lang.Object>
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/util/StrutsUtil.java:[273,12]
org.apache.struts2.util.StrutsUtil.ServletOutputStreamWrapper is not abstract
and does not override abstract method
setWriteListener(jakarta.servlet.WriteListener) in
jakarta.servlet.ServletOutputStream
[ERROR]
/Users/leberre/SCM/struts/migrated/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java:[88,30]
no suitable method found for
isMultipartContent(jakarta.servlet.http.HttpServletRequest)
[ERROR] method
org.apache.commons.fileupload.FileUploadBase.isMultipartContent(org.apache.commons.fileupload.RequestContext)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to org.apache.commons.fileupload.RequestContext)
[ERROR] method
org.apache.commons.fileupload.FileUploadBase.isMultipartContent(javax.servlet.http.HttpServletRequest)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to javax.servlet.http.HttpServletRequest)
[ERROR] method
org.apache.commons.fileupload.servlet.ServletFileUpload.isMultipartContent(javax.servlet.http.HttpServletRequest)
is not applicable
[ERROR] (argument mismatch; jakarta.servlet.http.HttpServletRequest
cannot be converted to javax.servlet.http.HttpServletRequest)
[ERROR] -> [Help 1]
{code}
I do not know enough struts codebase to help any further. I will keep an eye on
this issue.
> Support for JEE 9+
> -------------------
>
> Key: WW-5141
> URL: https://issues.apache.org/jira/browse/WW-5141
> Project: Struts 2
> Issue Type: New Feature
> Components: Core
> Reporter: Daniel Le Berre
> Priority: Major
> Fix For: 2.6
>
>
> JEE 9 breaks the JEE API by replacing javax domain by jakarta.
> Tomcat 10 implements some specifications of JEE 9.
> Struts 2.5 has some dependencies with the javax servlet API.
> Struts would require some changes to run on Tomcat 10+.
> Is there any plan to support JEE 9+ in the future?
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)