Java 如何在IntelliJ IDEA的web应用程序项目中部署maven依赖项?
我随后创建了一个web应用程序,并在本地运行GlassFish。它运行良好,我可以将代码的输出嵌入JSP中项目的src树中,并在web浏览器中查看。当我添加一个Maven依赖项时,问题就开始了。我补充说Java 如何在IntelliJ IDEA的web应用程序项目中部署maven依赖项?,java,maven,jsp,intellij-idea,glassfish,Java,Maven,Jsp,Intellij Idea,Glassfish,我随后创建了一个web应用程序,并在本地运行GlassFish。它运行良好,我可以将代码的输出嵌入JSP中项目的src树中,并在web浏览器中查看。当我添加一个Maven依赖项时,问题就开始了。我补充说 <dependency> <groupId>com.nimbusds</groupId> <artifactId>oauth2-oidc-sdk</artifactId> <version>4.9&l
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>4.9</version>
</dependency>
我错过了什么
E:我刚刚尝试从GlassFish lib文件夹中删除JAR并编辑war工件,在Output Layout选项卡上,我将JAR从可用元素移动到WEB-INF/lib目录,我看到它们在构建时被复制到了那里,但仍然是相同的错误
我还尝试让工件将.class文件从JAR提取到WEB-INF/classes文件夹中。同样,我在我的项目的out文件夹的WEB-INF/classes文件夹中看到了它们,但仍然是相同的java.lang.NoClassDefFoundError:com/nimbusds/oauth2/sdk/id/ClientID
E2:以下是完整的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>IdSrvJPoc</groupId>
<artifactId>IdentityServerJavaPoc</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>4.9</version>
</dependency>
</dependencies>
</project>
4.0.0
IdSrvJPoc
IdentityServerJavaPoc
1.0-快照
com.usds
oauth2 oidc sdk
4.9
由于出现NoClassDefFoundError错误,您的lib文件夹中可能仍然缺少依赖项。确保还包括任何Numbus依赖项。发布POM。请注意,如果您在IDEA中手动设置Java版本,这不是权威性的,您需要在POM中进行设置。此外,您需要确保您的运行时依赖项已打包到war中。谢谢!我在POM中编辑。为了这场战争,我很肯定他们会参与其中。我确信他们正在爆发战争,我认为这就是应用服务器正在使用的全部(尽管我还不确定)。
package com.idsrvjpoc;
import com.nimbusds.oauth2.sdk.*;
import com.nimbusds.oauth2.sdk.id.*;
import java.net.URI;
import java.net.URISyntaxException;
public class IdentityServerConfiguration {
public String getRedirectUrl() throws URISyntaxException, SerializeException {
URI authzEndpoint = new URI("myAuthEndpoint");
ClientID clientID = new ClientID("1234");
Scope scope = new Scope("openid");
URI callback = new URI("http://localhost:8080/IdentityServerPoc_war_exploded/return.jsp");
State state = new State();
AuthorizationRequest request = new AuthorizationRequest.Builder(
new ResponseType(ResponseType.Value.CODE), clientID).
scope(scope).
state(state).
redirectionURI(callback).
endpointURI(authzEndpoint).
build();
return request.toURI().toString();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>IdSrvJPoc</groupId>
<artifactId>IdentityServerJavaPoc</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>4.9</version>
</dependency>
</dependencies>
</project>