没有Web服务器的IBM Connections Java API

时间:2014-08-06 00:55:31

标签: ibm-sbt

Connections Java API文档和示例假设用户使用Web服务器与Connections进行交互。就我而言,我想使用jRuby的Java API,而且没有Web服务器。

我想将文件上传到Connections社区,或者更具体地说,直接连接到Connections服务器,进行身份验证并进行上传。我尝试了下面的代码并碰到了错误:

"未针对请求"

初始化SBT上下文

这个错误消息似乎在抱怨我当然没有的servlet。

这是我试过的代码......

    ep = new BasicEndpoint();
    ep.setUrl(connections_url);
    ep.login(userid, pw);
    service = new CommunityService();
    service.setEndpoint(ep);
    istream = new FileInputStream(temp_file);
    uploaded_file = service.uploadFile(istream, community_id, filename, filesize)

上面使用的API调用只是我的一个猜测,然而登录到Endpoint似乎工作,因为方法返回true,这给了我一些希望,我在正确的轨道上。但上传因上下文错误而失败,所以现在我被卡住了。

任何使这项工作成功的想法?

2 个答案:

答案 0 :(得分:0)

IBM SBT也可以处理独立应用程序。 Github存储库中有an example

基本上,您应该初始化应用程序和上下文。

RuntimeFactory runtimeFactory=new RuntimeFactoryStandalone();
Context context=null;
Application application=null;

try {
    application=runtimeFactory.initApplication(null);
    context = Context.init(application, null, null);

    // Whatever you want to do...


} catch(Throwable t) {
    // Error handling
    t.printStackTrace();
} finally {
    if (context != null)
        Context.destroy(context);
    if (application != null)
         Application.destroy(application);
}

答案 1 :(得分:0)

我最初在此写了一篇博客......

基本上你创建了一个Endpoint,我从BasicEndpoint开始。

/**
* creates a new Basic Endpoint to connect to Connections
* @param url
* @param user
* @param password
* @return
*/
private BasicEndpoint createEndpoint(String url, String user, String password) {
BasicEndpoint endpoint = new ConnectionsBasicEndpoint();
endpoint.setUrl(url);
endpoint.setUser(user);
endpoint.setPassword(password);
endpoint.setForceTrustSSLCertificate(true);
return endpoint;
}

现在,我有了通过传入Endpoint I构造来调用后端ForumService的基础。

ForumService svc = new ForumService(demo.endpoint);
try {
ForumList forumList = svc.getAllForums();
for(BaseForumEntity forumEntity : forumList){
Forum forum = (Forum) forumEntity;
System.out.println(“+F: ” + forum.getTitle());
TopicList topics = forum.getTopics();

for(BaseForumEntity topicEntity : topics){
ForumTopic topic = (ForumTopic) topicEntity;
System.out.println(“– ” + topic.getTitle());
}

}
} catch (ForumServiceException e) {
e.printStackTrace();
}

您可以重复此方法进行几乎任何通话。

博客文章位于 http://bastide.org/2014/01/28/how-to-develop-a-simple-java-integration-with-the-ibm-social-business-toolkit-sdk/