ローカルでは非常にうまく動作しますが、実行するためにjarパッケージにパッケージ化されており、ホームページをロードしてログインをクリックすると、次のエラーが報告されます。
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:99)
at com.platform.common.utils.JwtUtils.generateToken(JwtUtils.java:49)
...
これは、Javaバージョンが高すぎるためです。以前のJava 8および以前のバージョンにはデフォルトでjaxb-apiパッケージが含まれていましたが、アップグレードされたバージョンではこのパッケージを手動でインポートする必要があります。
したがって、pom.xmlファイルを見つけて、その中に次のコードを追加します
<!--解决Handler dispatch failed;nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter-->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
後で瓶を再包装する、不足しているパッケージが構成されていることを詳細で確認できます。
次に、合計jarパッケージをサーバーに再アップロードすると、実行できます。