2017-05-02 52 views
-1

为核心的Java对话服务的例子做工精细的Spring MVC,沃森谈话

对于Spring MVC的是显示错误一样,

"Exception in thread "main" java.lang.NoSuchMethodError: com.ibm.watson.developer_cloud.conversation.v1.ConversationService.createServiceCall(Lokhttp3/Request;Lcom/ibm/watson/developer_cloud/http/ResponseConverter;)Lcom/ibm/watson/developer_cloud/http/ServiceCall; at com.ibm.watson.developer_cloud.conversation.v1.ConversationService.message(ConversationService.java:89)"

我使用下面的例子

ConversationService service = new ConversationService(ConversationService.VERSION_DATE_2017_02_03,"username", "password"); 

Scanner sc = new Scanner(System.in); 
String workspaceId = "workspaceId "; 
String str = "open",response1; 

do { 
    System.out.println("Start chat"); 
    str = sc.nextLine(); 
    MessageRequest newMessage = new MessageRequest.Builder().inputText(str).build(); 
    MessageResponse response = service.message(workspaceId, newMessage).execute(); 
    response1 = response.getText().toString(); 
    System.out.println(response1.replace("[","").replace("]","")); 
    //System.out.println(response1); 
} while(!(str.contains("bye"))); 

回答

1

你可以请参阅Official Documentation JAVA SDK以使用IBM Watson API,他们使用此示例:

依赖(Maven的)

<dependency> 
    <groupId>com.ibm.watson.developer_cloud</groupId> 
    <artifactId>conversation</artifactId> 
    <version>3.8.0</version> 
</dependency> 

摇篮:

'com.ibm.watson.developer_cloud:conversation:3.8.0' 

代码来使用会话服务,以确定意图,实体和行为的对话:

//set version 
ConversationService service = new ConversationService(ConversationService.VERSION_DATE_2017_03_02); 

//setUsername and you Password inside your Conversation Service (Service Credentials) 
service.setUsernameAndPassword("<username>", "<password>"); 
//send a Message from your code, in this case "Hi" 
MessageRequest newMessage = new MessageRequest.Builder().inputText("Hi").build(); 
//set your workspace_id for use the conversation you wants 
MessageResponse response = service.message("<workspace-id>", newMessage).execute(); 
System.out.println(response); 

我不是Java语言的专家,但是,这对我来说很好。您可以在SDK中看到对话服务正在等待参数version_dateusernamepassword。但是,他们使用一个条件setUsernameAndPassword。我认为这是问题。

检查从Java SDK中的#83线使用会话:

public ConversationService(final String versionDate, String username, String password) { 
    this(versionDate); 
    //set username with this 
    setUsernameAndPassword(username, password); 
    }