WSO2 5.0.0版自定义用户存储管理器引发NoClassDefFoundError

WSO2 5.0.0版自定义用户存储管理器引发NoClassDefFoundError,wso2,wso2is,Wso2,Wso2is,我正在尝试在WSO2IS版本5.0.0中设置自定义主用户存储管理器 根据WSO2IS版本5.0.0的文档,我必须扩展UserStoreManager: import org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager; public class CustomUserStoreManager extends JDBCUserStoreManager { ... 在user-mgmt.xml中,我将UserStoreManager更改为引用此类

我正在尝试在WSO2IS版本5.0.0中设置自定义主用户存储管理器

根据WSO2IS版本5.0.0的文档,我必须扩展UserStoreManager:

import org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager;

public class CustomUserStoreManager extends JDBCUserStoreManager {
...
在user-mgmt.xml中,我将UserStoreManager更改为引用此类:

<UserStoreManager class="com.abc.identity.CustomUserStoreManager">
...

WSO2IS版本5.0.0的文档没有提供有关如何设置pom.xml的详细信息。

请尝试添加插件配置的导出部分

<build>
<plugins>
    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.5.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                <Bundle-Name>${project.artifactId}</Bundle-Name>
                <Bundle-Version>0.0.1</Bundle-Version>
                <Private-Package>com.peplink.ecommerce.identity</Private-Package>
                <Import-Package>
                    *
                </Import-Package>
                <Export-Package>
                    org.wso2.carbon.user.core.*
                </Export-Package>
            </instructions>
        </configuration>
    </plugin>
</plugins>

org.apache.felix
maven捆绑插件
2.5.0
真的
${project.groupId}.${project.artifactId}
${project.artifactId}
0.0.1
com.peplink.ecommerce.identity
*
org.wso2.carbon.user.core*

此pom.xml可以解决NoClassDefFoundError异常。关键是要匹配WSO2IS 5.0.0附带的捆绑包版本

<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>com.abc.asset</groupId>
<artifactId>asset-identity</artifactId>
<packaging>bundle</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>asset-identity</name>
<description>asset-identity</description>

<dependencies>
    <dependency>
        <groupId>org.wso2.carbon</groupId>
        <artifactId>org.wso2.carbon.identity.application.authentication.framework</artifactId>
        <version>4.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.wso2.carbon</groupId>
        <artifactId>org.wso2.carbon.user.core</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>1.4.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.5.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Name>${project.artifactId}</Bundle-Name>
                    <Bundle-Version>0.0.1</Bundle-Version>
                    <Export-Package>com.abc.asset.identity</Export-Package>
                    <Import-Package>
                        *
                    </Import-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>wso2-nexus</id>
        <name>WSO2 internal Repository</name>
        <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
        </releases>
    </repository>
</repositories>
</project>

4.0.0
资产
资产标识
捆
0.0.1-快照
资产标识
资产标识
org.wso2.carbon
org.wso2.carbon.identity.application.authentication.framework
4.2.2
org.wso2.carbon
org.wso2.carbon.user.core
4.2.0
org.apache.felix
org.osgi.core
1.4.0
org.apache.felix
maven捆绑插件
2.5.0
真的
${project.groupId}.${project.artifactId}
${project.artifactId}
0.0.1
com.abc.asset.identity
*
wso2连接
WSO2内部存储库
http://maven.wso2.org/nexus/content/groups/wso2-public/
真的
每日的
失败
<build>
<plugins>
    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.5.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
                <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                <Bundle-Name>${project.artifactId}</Bundle-Name>
                <Bundle-Version>0.0.1</Bundle-Version>
                <Private-Package>com.peplink.ecommerce.identity</Private-Package>
                <Import-Package>
                    *
                </Import-Package>
                <Export-Package>
                    org.wso2.carbon.user.core.*
                </Export-Package>
            </instructions>
        </configuration>
    </plugin>
</plugins>
<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>com.abc.asset</groupId>
<artifactId>asset-identity</artifactId>
<packaging>bundle</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>asset-identity</name>
<description>asset-identity</description>

<dependencies>
    <dependency>
        <groupId>org.wso2.carbon</groupId>
        <artifactId>org.wso2.carbon.identity.application.authentication.framework</artifactId>
        <version>4.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.wso2.carbon</groupId>
        <artifactId>org.wso2.carbon.user.core</artifactId>
        <version>4.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.osgi.core</artifactId>
        <version>1.4.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.5.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                    <Bundle-Name>${project.artifactId}</Bundle-Name>
                    <Bundle-Version>0.0.1</Bundle-Version>
                    <Export-Package>com.abc.asset.identity</Export-Package>
                    <Import-Package>
                        *
                    </Import-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>wso2-nexus</id>
        <name>WSO2 internal Repository</name>
        <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
        </releases>
    </repository>
</repositories>
</project>