Java 在服务器上运行的Clojure项目中集成Google自定义搜索

Java 在服务器上运行的Clojure项目中集成Google自定义搜索,java,json,clojure,server,google-search-api,Java,Json,Clojure,Server,Google Search Api,我正在为一个web应用程序(聊天机器人)进行clojure项目。我集成了一个谷歌自定义搜索工具,在聊天机器人没有答案的情况下,谷歌搜索结果会在聊天窗口中打印出来。在本地主机上,一切正常,但在线(在服务器上运行编译的jar文件时)如果询问聊天机器人没有答案的问题,则不会发生任何事情。有人知道这个问题吗 我的项目依赖项位于project.clj中: :dependencies [[org.clojure/clojure "1.6.0"] [compojure "1

我正在为一个web应用程序(聊天机器人)进行clojure项目。我集成了一个谷歌自定义搜索工具,在聊天机器人没有答案的情况下,谷歌搜索结果会在聊天窗口中打印出来。在本地主机上,一切正常,但在线(在服务器上运行编译的jar文件时)如果询问聊天机器人没有答案的问题,则不会发生任何事情。有人知道这个问题吗

我的项目依赖项位于project.clj中:

  :dependencies [[org.clojure/clojure "1.6.0"]
                [compojure "1.1.7"]
                [hiccup "1.0.2"]
                [org.clojure/java.jdbc "0.2.3"]
                [ring/ring-jetty-adapter "1.2.1"]
                [com.h2database/h2 "1.3.170"]
                [cheshire "5.5.0"] ;
                [org.clojure/clojurescript "0.0-2371"]
                [clj-http "2.0.0"]]
在集成Google定制搜索的文件中,我使用JSON定制搜索API中的其余部分,通过clj-http.client get函数接收结果

match.clj文件包含:

   (:require ...
             [clj-http.client :as client]
             [clojure.data.json :as json]
             [clojure.pprint :as pprint]
             [cheshire.core :refer :all]
    )
并调用函数:

(client/get (str google-search-url (apply str question)))
谷歌搜索url中包含以下表单:

https://www.googleapis.com/customsearch/v1?key=(put in API key)&cx=(put in Engine ID)
我不明白,如果在本地主机上运行jar文件,为什么会起作用,如果在服务器上运行,为什么会失败。首先,我生成了一个浏览器密钥,但随后我读到还有服务器API密钥,并用这个密钥重试。尽管如此,它仍然不起作用

我期待有人能帮助我


问题还没有解决。我在服务器上记录了错误,得到了以下信息:

2016年1月28日下午4:58:21 org.apache.http.impl.execchain.RetryExec execute 信息:处理对{s}->的请求时捕获I/O异常(java.net.SocketException):Das Netzwerk ist nicht erreichbar


有人知道原因是什么吗?

服务器日志中没有stacktraces?我会添加一个NREPL服务器并从那里进行调试…我得到这个消息:2016年1月28日5:02:35 PM org.apache.http.impl.execchain.RetryExec执行信息:重试对{s}的请求->我不知道如何解决这个问题?!谢谢你的评论!问题还没有解决。我在服务器上记录了错误,得到了以下信息:2016年1月28日下午4:58:21 org.apache.http.impl.execchain.RetryExec执行信息:处理对{s}->的请求时捕获到I/O异常(java.net.SocketException):Das Netzwerk ist nicht erreichbar 2016年1月28日下午4:58:21 org.apache.http.impl.execchain.RetryExec执行信息:重试对{s}的请求->有人知道原因是什么吗???服务器日志中没有stacktraces?我会添加一个NREPL服务器并从那里进行调试…我得到这个消息:2016年1月28日下午5:02:35 org.apache.http.impl.execchain.RetryExec执行信息:重试对{s}的请求->我不知道如何解决这个问题?!谢谢你的评论!问题还没有解决。我在服务器上记录了错误,得到了以下信息:2016年1月28日下午4:58:21 org.apache.http.impl.execchain.RetryExec执行信息:处理对{s}->的请求时捕获到I/O异常(java.net.SocketException):Das Netzwerk ist nicht erreichbar 2016年1月28日下午4:58:21 org.apache.http.impl.execchain.RetryExec执行信息:重试对{s}的请求->有人知道原因是什么???