使用 Xpages 和 IBM SBT 获取连接云数据时出错
Error getting Connection Cloud data using Xpages and IBM SBT
我正在尝试连接到 Connections Cloud 以获取数据并使用 IBM SBT 在 xpages 中显示它,但我遇到了一些问题。
我已经在 Domino Server 上安装了 IBM SBT,并在阅读安装指南后将其部署到 Domino Designer。
我还有一个 smartcloud 帐户,我在其中注册了一个用于 OAuth 测试的内部应用程序。
我创建了一个新的 nsf 应用程序,从示例 XPagesSBT.nsf 数据库复制了托管 beans 并替换了 OAuth1 凭据。 faces-config.xml 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<!--
Token store Memory implementation
-->
<managed-bean>
<managed-bean-name>CredStore</managed-bean-name>
<managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<!--
SmartCloud
-->
<managed-bean>
<managed-bean-name>connections</managed-bean-name>
<managed-bean-class>
com.ibm.sbt.services.endpoints.SmartCloudOAuthEndpoint
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<!-- Endpoint URL -->
<managed-property>
<property-name>url</property-name>
<value>https://apps.na.collabserv.com
</value>
</managed-property>
<managed-property>
<property-name>serviceName</property-name>
<value>SmartCloud</value>
</managed-property>
<!-- OAuth parameters -->
<managed-property>
<property-name>credentialStore</property-name>
<value>CredStore
</value>
</managed-property>
<managed-property>
<property-name>requestTokenURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/getRequestToken
</value>
</managed-property>
<managed-property>
<property-name>authorizationURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/authorizeToken
</value>
</managed-property>
<managed-property>
<property-name>accessTokenURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/getAccessToken
</value>
</managed-property>
<managed-property>
<property-name>appId</property-name>
<value>app_20051314_...</value>
</managed-property>
<managed-property>
<property-name>consumerKey</property-name>
<value>3f1b3f22658601...
</value>
</managed-property>
<managed-property>
<property-name>consumerSecret</property-name>
<value>bcb4ca1d1ede5...
</value>
</managed-property>
</managed-bean>
</faces-config>
我选择了要使用的 Xpage Libraries,最后我基于从 Greenhouse 中获取的这个片段创建了一个 Xpage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
Here is the list of public Communities:
<xp:br></xp:br>
<xp:br></xp:br>
<xp:text escape="false" id="computedField1">
<xp:this.value><![CDATA[#{javascript:var svc = new com.ibm.sbt.services.client.connections.communities.CommunityService()
var c = svc.getPublicCommunities()
if(c.size()>0) {
var result = ""
for(var i=0; i<c.size(); i++) {
result += "<b>Name:</b>"+c[i].getTitle()+"<br/>\n"
}
return result;
} else {
return "No Result";
}}]]></xp:this.value>
</xp:text>
</xp:view>
当我打开 Xpage 时,它会将我重定向到 Connection Cloud 的身份验证页面,然后重定向到授予访问权限页面,最后重定向到我的 Xpage 并出现以下错误:
调用 java 构造函数时出错 'com.ibm.sbt.services.client.connections.communities.CommunityService()' (java.lang.reflect.InvocationTargetException)。
服务器版本是 Windows/Longhom/646.1 上的 9.0.1FP4,并在 https 下运行。我不知道我错过了什么。也许是服务器级别的东西?我将不胜感激任何帮助。谢谢
我解决了
我已经从 github (1.1.11.20151208-1200) 安装了最新版本的 SBT SDK。我卸载了它,而是安装了 openntf 版本 (1.0.3.20140723-1200)。现在可以正常使用了。
我正在尝试连接到 Connections Cloud 以获取数据并使用 IBM SBT 在 xpages 中显示它,但我遇到了一些问题。 我已经在 Domino Server 上安装了 IBM SBT,并在阅读安装指南后将其部署到 Domino Designer。
我还有一个 smartcloud 帐户,我在其中注册了一个用于 OAuth 测试的内部应用程序。
我创建了一个新的 nsf 应用程序,从示例 XPagesSBT.nsf 数据库复制了托管 beans 并替换了 OAuth1 凭据。 faces-config.xml 看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<!--
Token store Memory implementation
-->
<managed-bean>
<managed-bean-name>CredStore</managed-bean-name>
<managed-bean-class>com.ibm.sbt.security.credential.store.MemoryStore
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<!--
SmartCloud
-->
<managed-bean>
<managed-bean-name>connections</managed-bean-name>
<managed-bean-class>
com.ibm.sbt.services.endpoints.SmartCloudOAuthEndpoint
</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<!-- Endpoint URL -->
<managed-property>
<property-name>url</property-name>
<value>https://apps.na.collabserv.com
</value>
</managed-property>
<managed-property>
<property-name>serviceName</property-name>
<value>SmartCloud</value>
</managed-property>
<!-- OAuth parameters -->
<managed-property>
<property-name>credentialStore</property-name>
<value>CredStore
</value>
</managed-property>
<managed-property>
<property-name>requestTokenURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/getRequestToken
</value>
</managed-property>
<managed-property>
<property-name>authorizationURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/authorizeToken
</value>
</managed-property>
<managed-property>
<property-name>accessTokenURL</property-name>
<value>https://apps.na.collabserv.com/manage/oauth/getAccessToken
</value>
</managed-property>
<managed-property>
<property-name>appId</property-name>
<value>app_20051314_...</value>
</managed-property>
<managed-property>
<property-name>consumerKey</property-name>
<value>3f1b3f22658601...
</value>
</managed-property>
<managed-property>
<property-name>consumerSecret</property-name>
<value>bcb4ca1d1ede5...
</value>
</managed-property>
</managed-bean>
</faces-config>
我选择了要使用的 Xpage Libraries,最后我基于从 Greenhouse 中获取的这个片段创建了一个 Xpage:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
Here is the list of public Communities:
<xp:br></xp:br>
<xp:br></xp:br>
<xp:text escape="false" id="computedField1">
<xp:this.value><![CDATA[#{javascript:var svc = new com.ibm.sbt.services.client.connections.communities.CommunityService()
var c = svc.getPublicCommunities()
if(c.size()>0) {
var result = ""
for(var i=0; i<c.size(); i++) {
result += "<b>Name:</b>"+c[i].getTitle()+"<br/>\n"
}
return result;
} else {
return "No Result";
}}]]></xp:this.value>
</xp:text>
</xp:view>
当我打开 Xpage 时,它会将我重定向到 Connection Cloud 的身份验证页面,然后重定向到授予访问权限页面,最后重定向到我的 Xpage 并出现以下错误:
调用 java 构造函数时出错 'com.ibm.sbt.services.client.connections.communities.CommunityService()' (java.lang.reflect.InvocationTargetException)。
服务器版本是 Windows/Longhom/646.1 上的 9.0.1FP4,并在 https 下运行。我不知道我错过了什么。也许是服务器级别的东西?我将不胜感激任何帮助。谢谢
我解决了
我已经从 github (1.1.11.20151208-1200) 安装了最新版本的 SBT SDK。我卸载了它,而是安装了 openntf 版本 (1.0.3.20140723-1200)。现在可以正常使用了。