我们正在使用 WSO2 IS,v5.1.0。 测试时,我们得到了如下结果:
- 运行一套测试时,一切正常。
- 当运行并发测试时,意思是 - 正在发送并发请求,我们遇到了 NPE。此外,例如,我们在添加两个用户时得到“200”,但是当尝试查询并获取他们两个时,我们收到一条消息,提示需要 2 个值,但只返回 1 个。
知道如何解决这个问题吗?是什么原因造成的? 如果需要任何进一步的信息,请告诉我。
谢谢!
最佳答案
现在我明白了..
您可以/必须修复 WSO2 IS 5.1.0 中的两个问题。
嵌入式 JSP 页面的使用
首先 - 看到 wso2server.bat/.sh 和 bin/yajsw/wrapper.conf 的参数有所不同。在 wrapper.conf 添加:
wrapper.java.additional.27 = -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
请更改参数顺序以适合您的参数列表
StringUtil 包依赖
这里出现了 NPE 堆栈跟踪,没有它,您无法查明确切的问题。显然,一些 UI 包指定了无效的依赖项,特别是没有指定对所使用的 Commons-Lang StringUtil 包的依赖项。
我们已经通过以下操作解决了这个问题:
- 下载并复制 commons-lang-2.6.jar 到 repository/components/dropins
- 创建一个新的 OSGi 包(假设您了解 Java 以及如何创建 OSGi 包片段),它导入 org.apache.commons.lang;version="[2.6,3)" 并且是一个org.wso2.carbon.identity.mgt.ui 包的片段。将此包复制到 dropins 文件夹。
- 创建一个新的 OSGi 包,它导入 org.apache.commons.lang;version="[2.6,3)" 并且是 org.wso2.carbon.identity 的片段.application.mgt.ui 包。将此包复制到 dropins 文件夹。
编辑:
用于生成包的 maven 插件的一部分
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Fragment-Host>org.wso2.carbon.identity.application.mgt.ui</Fragment-Host>
<Import-Package>org.apache.commons.lang.*</Import-Package>
<!--
<Export-Package>org.apache.commons.lang.*</Export-Package>
<Embed-Dependency>commons-lang</Embed-Dependency>
-->
</instructions>
</configuration>
</plugin>
有多个 bundle 存在此问题,但要使 IS 5.1.0 可用,至少需要修复这些 bundle 。
在所有情况下,这个答案仍然基于假设和我们的经验而不是证据(堆栈跟踪)。
克
关于WSO2 身份服务器 - 并发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603063/