Nor*_*era 6 java glassfish maven apache-commons-fileupload jakarta-ee
我正在使用 Eclipse 和 Glassfish 6.1.0,在 glassfish 中我必须添加一些对项目很重要的库,但是我在添加 commons-fileupload 库时遇到了问题,我发现 Apache Commons 代码使用了 javax 包。* 包无法使用 Jakarta EE 9 和 GlassFish 6.1.0 代码进行编译,并且 commons-fileupload 依赖于 javax.servlet,GlassFish 管理控制台使用它来加载实现。
\n另外,我正在与:
\n当我尝试部署应用程序时,出现此错误:
\n[2021-12-07T14:34:55.416-0500] [glassfish 6.1] [SEVERE] [AS-WEB-CORE-00108] [jakarta.enterprise.web.core] [tid: _ThreadID=47 _ThreadName=admin-listener(3)] [timeMillis: 1638905695416] [levelValue: 1000] [[\n ContainerBase.addChild: start: \norg.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener\n at org.apache.catalina.core.StandardContext.start(StandardContext.java:5537)\n at com.sun.enterprise.web.WebModule.start(WebModule.java:507)\n at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:877)\n at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:860)\n at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:644)\n... \nCaused by: java.lang.IllegalArgumentException: java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener\n at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2867)\n at org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:2073)\n at com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:212)\n at com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:71)\n at com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:215)\n at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:295)\n at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:122)\n at org.apache.catalina.core.StandardContext.start(StandardContext.java:5534)\n ... 73 more\n\nRun Code Online (Sandbox Code Playgroud)\n我附上了完整的pom.xml和 server\xc2\xa8日志文件。
\npom.xml
\n<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n <modelVersion>4.0.0</modelVersion>\n <groupId>com.focussscm</groupId>\n <artifactId>focussSCMParent</artifactId>\n <version>5.5.0</version>\n <packaging>pom</packaging>\n\n\n <modules>\n <module>../focussSCMModel</module>\n <module>../focussSCMJobsWSClientJobService</module>\n <module>../focussWSClientDataExchangeService</module>\n <module>../focussSCMBusiness</module>\n <module>../focussSCMJobs</module>\n <module>../focussSCMSecurity</module>\n <module>../focussSCM</module>\n </modules>\n\n <properties>\n <!-- Explictly specify a default encoding to avoid relying on the OS locale. -->\n <project.build.sourceEncoding>Cp1252</project.build.sourceEncoding>\n <project.build.scriptEncoding>Cp1252</project.build.scriptEncoding>\n\n <!-- Artifact versions -->\n <axis.version>1.4</axis.version>\n <commons-fileupload.version>1.4</commons-fileupload.version>\n <commons.discovery.version>0.2</commons.discovery.version>\n <gwt.version>2.9.0</gwt.version>\n <gwt-highcharts.version>1.7.0</gwt-highcharts.version>\n <gwtext.version>2.0.5</gwtext.version>\n <itext.version>5.4.2</itext.version>\n <jackson.version>1.8.10</jackson.version>\n <jakarta-faces.version>3.0.2</jakarta-faces.version>\n <jakarta.ws.rs.version>3.0.0</jakarta.ws.rs.version>\n <jakarta.xml.ws.version>4.0.0-RC1</jakarta.xml.ws.version>\n <jakarta.mail.version>2.0.1</jakarta.mail.version>\n <jakarta.ejb.version>4.0.0</jakarta.ejb.version>\n <jakarta.activation-api.version>2.0.1</jakarta.activation-api.version>\n <javax.wsdl.version>1.5.1</javax.wsdl.version>\n <jakarta.jws-api.version>3.0.0</jakarta.jws-api.version>\n <jakartarpc-api.version>1.1.4</jakartarpc-api.version>\n <jms.version>1.1</jms.version>\n <jmxri.version>1.2.1</jmxri.version>\n <jmxtools.version>1.2.1</jmxtools.version>\n <json.version>20171018</json.version>\n <jstl.version>1.2</jstl.version>\n <log4j.version>1.2.17</log4j.version>\n <poi.version>3.9</poi.version>\n <org.quartz-scheduler.version>1.5.2</org.quartz-scheduler.version>\n <servlet-api.version>5.0.0</servlet-api.version>\n <smartgwt.version>4.0-focuss</smartgwt.version>\n \n <spring.version>5.2.8.RELEASE</spring.version>\n <spring.security.version>5.3.4.RELEASE</spring.security.version>\n <slf4j-log4j.version>1.8.0-beta4</slf4j-log4j.version>\n \n <spring-security-web.version>3.1.4.RELEASE</spring-security-web.version>\n <spring-webmvc.version>3.0.7.RELEASE</spring-webmvc.version>\n <gwt.directory>pages/module/gwt</gwt.directory>\n\n <!-- Glassfish server variables --> \n`<glassfish.glassfishDirectory>C:\\Development\\Apps\\Glassfish6</glassfish.glassfishDirectory>`\n <glassfish.user>User</glassfish.user>\n <glassfish.adminPassword>123456</glassfish.adminPassword>\n <glassfish.domain.name>fscmFocuss</glassfish.domain.name>\n <glassfish.domain.host>localhost</glassfish.domain.host>\n <glassfish.domain.adminPort>1234</glassfish.domain.adminPort>\n\n\n <!-- Maven GWT compiler version and parameters -->\n <maven.compiler.version>3.8.0</maven.compiler.version>\n <maven.compiler.source>11</maven.compiler.source>\n <maven.compiler.target>11</maven.compiler.target>\n <maven.resources.version>3.2.0</maven.resources.version>\n <compiler.style>OBF</compiler.style>\n <compiler.log.level>INFO</compiler.log.level>\n <glassfish.port>8081</glassfish.port>\n <install.plugin.version>2.5.2</install.plugin.version>\n\n <!-- Maven War plugin version and parameters -->\n <war.plugin.version>3.0.0</war.plugin.version>\n\n <!-- Maven ear plugin version and parameters -->\n <ear.plugin.version>2.10.1</ear.plugin.version>\n\n <cargo.maven3.plugin.version>1.9.3</cargo.maven3.plugin.version>\n \n <!-- ${basedir}/local.properties -->\n <dropbox.home>${dropbox.home.dir}</dropbox.home>\n </properties>\n\n <dependencyManagement>\n <dependencies>\n <!-- package\\GWT\\gwt-servlet.jar -->\n <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-servlet -->\n <dependency>\n <groupId>com.google.gwt</groupId>\n <artifactId>gwt-servlet</artifactId>\n <version>${gwt.version}</version>\n <scope>runtime</scope>\n </dependency>\n\n <!-- only_for_building\\gwt\\gwt-2.5.1\\gwt-user.jar -->\n <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-user -->\n <dependency>\n <groupId>com.google.gwt</groupId>\n <artifactId>gwt-user</artifactId>\n <version>${gwt.version}</version>\n <scope>provided</scope>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/com.gwtext/gwtext -->\n <dependency>\n <groupId>com.gwtext</groupId>\n <artifactId>gwtext</artifactId>\n <version>${gwtext.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-dev -->\n <dependency>\n <groupId>com.google.gwt</groupId>\n <artifactId>gwt-dev</artifactId>\n <version>${gwt.version}</version>\n <scope>provided</scope>\n </dependency>\n \n <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-dev -->\n <dependency>\n <groupId>com.google.gwt</groupId>\n <artifactId>gwt</artifactId>\n <version>${gwt.version}</version>\n <type>pom</type>\n </dependency>\n \n <!-- only_for_building\\gwt\\smartgwtpro-4.0\\lib -->\n <dependency>\n <groupId>com.isomorphic.smartgwt.pro</groupId>\n <artifactId>smartgwt-pro</artifactId>\n <version>${smartgwt.version}</version>\n <exclusions>\n <!-- Exclusion: required to avoid conflicting with the asm dependency below -->\n <exclusion>\n <groupId>asm</groupId>\n <artifactId>asm</artifactId>\n </exclusion>\n </exclusions>\n </dependency>\n\n <!-- only_for_building\\gwt\\HighCharts\\org.moxieapps.gwt.highcharts-1.5.0.jar -->\n <!-- https://highcharts4gwt.github.io/ -->\n <dependency>\n <groupId>org.moxieapps.gwt</groupId>\n <artifactId>org.moxieapps.gwt.highcharts</artifactId>\n <version>${gwt-highcharts.version}</version>\n </dependency> \n\n <!-- only_for_building\\axis\\axis.jar -->\n <!-- https://mvnrepository.com/artifact/org.apache.axis/axis -->\n <dependency>\n <groupId>org.apache.axis</groupId>\n <artifactId>axis</artifactId>\n <version>${axis.version}</version>\n </dependency>\n\n <!-- only_for_building\\itextpdf-5.4.2 -->\n <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->\n <dependency>\n <groupId>com.itextpdf</groupId>\n <artifactId>itextpdf</artifactId>\n <version>${itext.version}</version>\n </dependency>\n\n <!-- only_for_building\\log4j\\log4j-1.2.15.jar -->\n <!-- https://mvnrepository.com/artifact/log4j/log4j -->\n <dependency>\n <groupId>log4j</groupId>\n <artifactId>log4j</artifactId>\n <version>${log4j.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->\n <!-- <dependency> -->\n <!-- <groupId>org.apache.logging.log4j</groupId> -->\n <!-- <artifactId>log4j-core</artifactId> -->\n <!-- <version>${log4j.version}</version> -->\n <!-- </dependency> -->\n\n <!-- only_for_building\\poi-3.9 -->\n <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->\n <dependency>\n <groupId>org.apache.poi</groupId>\n <artifactId>poi</artifactId>\n <version>${poi.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->\n <dependency>\n <groupId>org.apache.poi</groupId>\n <artifactId>poi-ooxml</artifactId>\n <version>${poi.version}</version>\n </dependency>\n\n <!-- package\\json -->\n <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-lgpl -->\n <dependency>\n <groupId>org.codehaus.jackson</groupId>\n <artifactId>jackson-core-lgpl</artifactId>\n <version>${jackson.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-lgpl -->\n <dependency>\n <groupId>org.codehaus.jackson</groupId>\n <artifactId>jackson-mapper-lgpl</artifactId>\n <version>${jackson.version}</version>\n </dependency>\n\n <!-- only_for_building\\json -->\n <!-- https://mvnrepository.com/artifact/org.json/json -->\n <dependency>\n <groupId>org.json</groupId>\n <artifactId>json</artifactId>\n <version>${json.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/jakarta.xml.rpc/jakarta.xml.rpc-api -->\n <dependency>\n <groupId>jakarta.xml.rpc</groupId>\n <artifactId>jakarta.xml.rpc-api</artifactId>\n <version>${jakartarpc-api.version}</version>\n </dependency>\n\n\n <!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->\n <dependency>\n <groupId>jakarta.servlet</groupId>\n <artifactId>jakarta.servlet-api</artifactId>\n <version>${servlet-api.version}</version>\n <scope>provided</scope>\n </dependency>\n\n\n <!-- https://mvnrepository.com/artifact/jakarta.ws.rs/jakarta.ws.rs-api -->\n <dependency>\n <groupId>jakarta.ws.rs</groupId>\n <artifactId>jakarta.ws.rs-api</artifactId>\n <version>${jakarta.ws.rs.version}</version>\n </dependency>\n \n <!-- https://mvnrepository.com/artifact/jakarta.xml.ws/jakarta.xml.ws-api -->\n <dependency>\n <groupId>jakarta.xml.ws</groupId>\n <artifactId>jakarta.xml.ws-api</artifactId>\n <version>${jakarta.xml.ws.version}</version>\n </dependency> \n\n\n <!-- https://mvnrepository.com/artifact/jakarta.mail/jakarta.mail-api -->\n <dependency>\n <groupId>jakarta.mail</groupId>\n <artifactId>jakarta.mail-api</artifactId>\n <version>${jakarta.mail.version}</version>\n </dependency>\n\n\n <!-- https://mvnrepository.com/artifact/jakarta.ejb/jakarta.ejb-api -->\n <dependency>\n <groupId>jakarta.ejb</groupId>\n <artifactId>jakarta.ejb-api</artifactId>\n <version>${jakarta.ejb.version}</version>\n </dependency>\n \n <!-- https://mvnrepository.com/artifact/jakarta.jws/jakarta.jws-api -->\n <dependency>\n <groupId>jakarta.jws</groupId>\n <artifactId>jakarta.jws-api</artifactId>\n <version>${jakarta.jws-api.version}</version>\n </dependency>\n \n <!-- https://mvnrepository.com/artifact/jakarta.activation/jakarta.activation-api -->\n <dependency>\n <groupId>jakarta.activation</groupId>\n <artifactId>jakarta.activation-api</artifactId>\n <version>${jakarta.activation-api.version}</version>\n </dependency> \n\n\n <!-- https://mvnrepository.com/artifact/org.glassfish/jakarta.faces -->\n <dependency>\n <groupId>org.glassfish</groupId>\n <artifactId>jakarta.faces</artifactId>\n <version>${jakarta-faces.version}</version>\n </dependency> \n \n\n <!-- package\\fileUpload\\commons-fileupload-1.4.jar -->\n <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->\n <dependency>\n <groupId>commons-fileupload</groupId>\n <artifactId>commons-fileupload</artifactId>\n <version>${commons-fileupload.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->\n <!-- <dependency> -->\n <!-- <groupId>org.quartz-scheduler</groupId> -->\n <!-- <artifactId>quartz</artifactId> -->\n <!-- <version>${org.quartz-scheduler.version}</version> -->\n <!-- </dependency> -->\n\n <!-- https://mvnrepository.com/artifact/opensymphony/quartz -->\n <dependency>\n <groupId>opensymphony</groupId>\n <artifactId>quartz</artifactId>\n <version>${org.quartz-scheduler.version}</version>\n </dependency>\n\n <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz -->\n <!-- <dependency>
您的问题源于 Java EE 8 或更早版本与 Jakarta EE 9 或更高版本之间的不兼容性。
看起来 Apache Commons FileUpload 的最新官方版本仍然依赖于 Java EE API。然而,查看 GitHub 上的提交历史记录,这个提交:
旨在从 Java 代码中删除 Java EE 和 Jakarta EE 依赖项。因此,如果要在该提交时或之后查看源代码,您应该能够构建一个commons-fileupload在 Java EE 或 Jakarta EE 上运行的版本。
(注:我还没有尝试过。)
从字里行间,我预计该库很快就会发布新的正式版本。显然,Java EE 依赖性commons-fileupload是其他一些 Apache 基金会项目的障碍。
另一种选择是暂时将应用程序保留在 Java EE 8(或更早版本),并使用 GlassFish 5.1 或更早版本……这需要 Java 8 而不是 Java 11。
| 归档时间: |
|
| 查看次数: |
2785 次 |
| 最近记录: |