我正在编写一个将HashMap返回给用户的应用程序.用户将获得对此MAP的引用.在后端,我将运行一些将更新Map的线程.
到目前为止我做了什么?
我已经制作了所有后端线程,因此共享一个公共频道来更新MAP.所以在后端我确信并发写操作不会成为问题.
我遇到的问题
直到现在我还没有遇到任何这样的问题,但我担心将来我可能会面对.请给出sugesstions.
我在用 ConcurrentHashMap<String, String>.
我正在使用ExecutorService线程池执行可调用对象.我想给这个帖子命名.
更具体地说,在旧版本中,我这样做了 -
Thread thread = new Thread(runnable Task);
thread.setName("My Thread Name");
Run Code Online (Sandbox Code Playgroud)
我在log4j日志记录中使用线程名称,这在故障排除时有很大帮助.现在我将我的代码从Java 1.4迁移到Java 1.6.我写了这个(在下面给出) - 但我不知道如何给这个帖子命名.
private final ExecutorService executorPool = Executors.newCachedThreadPool();
Future<String> result = executorPool.submit(callable Task);
Run Code Online (Sandbox Code Playgroud)
请给我一些想法给这个帖子命名?
您好我使用Apache HTTP Client 4.0基于HTTPS协议上传服务器上的一些文件.上传的应用程序全天候运行.今天突然间它开始抛出这个例外 -
java.net.SocketException: No buffer space available (maximum connections reached?): connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:333)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:101)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:381)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
Run Code Online (Sandbox Code Playgroud)
谁能帮帮我吗?我对发生的事情完全无能为力?
这是上传文件的源代码 -
public File call() throws Exception {
HttpClient httpclient = new DefaultHttpClient();
try{
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
/*
* Create POST REQUEST
*/
HttpPost httpPost = new HttpPost(this.URL);
/* …
Run Code Online (Sandbox Code Playgroud) 我目前正在研究基于java的桌面软件.它是一个相当大的代码库(超过40个jar文件).
我希望提供自动更新功能.桌面软件不断检查一个后端系统,以查看是否有新版本的jar文件可用.
现在的问题是:如何替换更新的jar文件?
我正在编写一个应用程序,我使用HTTP协议将文件上传到服务器.一切都工作正常,我能够上传文件,我已经使用Apache HTTP客户端jar设置来实现这一目标.在应用程序中,我使用了已设置为DEBUG级别的log4j日志框架,默认情况下,Apache HTTP Client也选择了具有相同日志记录级别的相同日志框架,并且它生成了大量日志.任何人都可以指导我如何禁用apache Http客户端的日志记录?
我正在使用XML文件名log4j.xml配置log4j.
我有一个奇怪的问题.我正在核心java中编写一个应用程序,需要在google docs上访问自己的帐户.所以经过大量的谷歌搜索,我发现OAuth2.0与服务帐户是我正在寻找的东西.但我没有使用App Engine或其他任何东西.它的应用很简单.我不知道如何使用OAuth.我写了下面的代码,我不知道如何进一步.正在找人指导我:
GoogleCredential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT).setJsonFactory(JSON_FACTORY)
.setServiceAccountId(EMAIL)
.setServiceAccountScopes(SCOPE)
.setServiceAccountPrivateKeyFromP12File(new File("lib/key.p12")).build();
SpreadsheetService service = new SpreadsheetService("My test Service");
//service .setOAuthCredentials(parameters, signer);
Run Code Online (Sandbox Code Playgroud)
谢谢 !
我花了几乎一天的时间在 google pub sub 文档上创建一个小应用程序。我正在考虑从rabbitMQ切换到google pub/sub。这是我的问题:
我有一个将消息推送到主题 (T) 的应用程序。我想通过订阅者进行负载共享。所以我为 T 创建了 3 个订阅者。我将所有 3 个订阅者的名称保持相同 (S),这样我就不会 3 次收到相同的消息。
我有 2 个问题:
最后,谷歌认真对待 pub/sub 吗?查看文档和公众参与,我不确定是否应该切换到 google pub/sub。
谢谢,
我处于必须与 GCP 服务器建立 rabbitMQ 连接(我是消费者)的情况。我的代码也在 GCP 机器上。所以双方(一个是 MQ 生产者,另一个我)决定创建一个本地网络连接,而不是去外部 IP 连接。我已经尝试了一切,但没有这样做。我已经成功地做到了:
我在这里做错了什么吗?请帮忙。
谢谢,阳光
java ×6
apache ×1
auto-update ×1
connection ×1
gdata ×1
hashmap ×1
http ×1
httpclient ×1
lan ×1
log4j ×1
oauth-2.0 ×1
rabbitmq ×1
sockets ×1
vpc ×1