java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):connect

您好我使用Apache HTTP Client 4.0基于HTTPS协议上传服务器上的一些文件。 上传的应用程序全天候运行。 今天突然间它开始抛出这个exception – 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) 谁能帮帮我吗? 我完全不知道发生了什么事? […]

PHP等效于Java Triple DES加密/解密

我试图使用PHP mcrypt函数解密由Java Triple DES函数加密的密钥,但没有运气。 在下面找到java代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class Encrypt3DES { private byte[] key; private byte[] initializationVector; public Encrypt3DES(){ } public String encryptText(String plainText, String key) throws Exception{ //—- Use specified 3DES key and IV from other source ————– byte[] plaintext = plainText.getBytes(); byte[] myIV = key.getBytes(); byte[] tdesKeyData = {(byte)0xA2, […]

是否可以在资源包中包含资源包文件

我们使用java.util.ResourceBundle来加载属性信息。 我们的属性文件已经变得如此庞大,我们正在考虑将主属性文件分成几个子模块。 是否有可能实现这一目标? master.properties ==> master.properties include moduleA.properties include moduleB.properties 让我知道?

从命令行启动Minecraft – 用户名和密码作为前缀

我正在尝试制作一个简单的定制Minecraft发射器的东西。 根据Launcher的Minecraft Wiki页面 ,应该可以使用命令行中的用户名和密码前缀运行Minecraft启动器,直接进入游戏而不是通过启动器。 我已经尝试了各种版本的java -cp -u=username -p=password minecraft.jar net.minecraft.LauncherFrame ,它说的是旧方法: java -cp minecraft.jar net.minecraft.LauncherFrame 旧方法打开了Minecraft启动器,就好像我双击了jar文件一样,但它没有直接进入菜单屏幕。 新的方式(使用密码和用户名作为前缀),给我一条错误消息,说prefix -u=username or -p=password don’t exist 。 对此有何帮助? 我真的被卡住了。

测量下载速度Java

我正在努力下载一个软件上的文件,这是我得到的,它可以下载,并且我可以获得进步,但还有一件事我不知道该怎么做。 测量下载速度。 我很感激你的帮助。 谢谢。 这是当前的下载方法代码 public void run() { OutputStream out = null; URLConnection conn = null; InputStream in = null; try { URL url1 = new URL(url); out = new BufferedOutputStream( new FileOutputStream(sysDir+”\\”+where)); conn = url1.openConnection(); in = conn.getInputStream(); byte[] buffer = new byte[1024]; int numRead; long numWritten = 0; double progress1; while ((numRead […]

maven-assembly-plugin:如何使用appendAssemblyId

我有一个多模块Maven项目,在一个模块中我想在构建期间创建两个工件: 主要工件是一个jar库,其他一些模块将依赖它。 一个执行一些辅助函数的可执行jar文件。 没有其他模块依赖于此,它仅供用户在某些情况下手动运行。 这是我用来配置maven-assembly-plugin插件的代码: maven-assembly-plugin 2.4 dist-assembly package single bso jar-with-dependencies helper-${project.version} false HelperMain 我将appendAssemblyId设置为false ,否则-jar-with-dependencies将被附加到最终名称,我不认为需要它。 省略它可以提供更清晰,更易于使用的文件名。 当我运行mvn integration-test我收到以下警告: [警告]配置选项:’appendAssemblyId’设置为false,并且缺少’classifier’。 它不会附加汇编文件:[…] / target / helper-5.0.0-SNAPSHOT.jar,而是成为主项目工件的文件。 注意:如果为此项目提供了多个描述符或描述符格式,则此文件的值将是不确定的! [警告]用程序集文件替换预先存在的项目主工件文件:[…] / target / my.module-5.0.0-SNAPSHOT.jar:[…] / target / helper-5.0.0- SNAPSHOT.jar 有两件事激怒了我: 尽管警告声称它将用helper-5.0.0-SNAPSHOT.jar替换my.module-5.0.0-SNAPSHOT.jar,但它实际上并没有这样做,并且当构建完成时,两个文件仍然具有不同的大小。 为什么有关更换工件的警告出现? 似乎classifier器已被弃用,为什么警告要求我使用它?

在ThreadPoolExecutor中使用InheritableThreadLocal – 或者 – 不重用线程的ThreadPoolExecutor

我试图使用InheritableThreadLocal和ThreadPoolExecutor 。 这会分解,因为ThreadPoolExecutor为每个池重用线程(毕竟它是一个池),这意味着InheritableThreadLocal不能按预期工作。 现在这个问题对我来说显而易见,但追踪却特别狡猾。 我使用InheritableThreadLocal以便几个顶级进程中的每一个都有自己的数据库连接以及它产生的任何子进程。 我不只是使用一个共享连接池,因为每个顶级进程在提交到数据库和/或准备大量反复使用的PreparedStatements之前,将使用其连接进行大量的多步骤工作。 我在这些顶级进程之间使用共享的ThreadPoolExecutor ,因为某些行为需要被门控。 虽然我可能有4个顶级进程在运行,但我一次只能有一个进程写入数据库(或者系统需要访问其他一些共享资源)。 因此,我将让顶级进程创建一个Runnable并将其发送到共享的ThreadPoolExecutor ,以确保在整个系统中同时运行不超过一个(或两个或三个)。 问题是因为ThreadPoolExecutor重用其池的线程,所以InheritableThreadLocal将获取在该池中运行的原始值,而不是将Runnable发送到ThreadPoolExecutor的顶级进程中的值。 有没有办法强制ThreadPoolExecutor的工作池使用创建Runnable而不是在重用线程池的上下文中的进程上下文中的InheritableThreadLocal值? 或者,是否有任何ThreadPoolExecutor实现,每次启动一个新的Runnable时都会创建一个新线程? 出于我的目的,我只关心将同时运行的线程的数量设置为固定大小。 有没有其他解决方案或建议人们让我完成我上面描述的内容? (虽然我意识到我可以通过将类数据库连接从类传递到子线程到子线程来解决问题,就像某种社区自行车一样,我想避免这种情况。) 还有一个关于StackOverflow, InheritableThreadLocal和线程池的问题也解决了这个问题。 但是,该问题的解决方案似乎是它对于InheritableThreadLocal来说是一个糟糕的用例,我不认为这适用于我的情况。 谢谢你的任何想法。

在Hibernate JPA2上使用唯一约束

如何在hibernate POJO上实现我的唯一约束? 假设数据库不包含任何数据库。 我在@Column()注释中看到了唯一属性,但我无法使其工作? 如果我想将此约束应用于多个列,该怎么办?

Android Bug? :String.substring(5).replace(“”,“”)//空字符串

这是我的代码: String str = “just_a_string”; System.out.println(“]” + str + “[“); System.out.println(“]” + str.replace(“”, “”) + “[“); System.out.println(“]” + str.substring(5) + “[“); System.out.println(“]” + str.substring(5).replace(“”, “”) + “[“); System.out.println(“]” + str.substring(3, 8) + “[“); System.out.println(“]” + str.substring(3, 8).replace(“”, “”) + “[“); System.out.println(“]” + “sdajndan”.substring(5).replace(“”, “”) + “[“); 这是输出 05-09 19:09:20.570: I/System.out(23801): ]just_a_string[ 05-09 19:09:20.570: I/System.out(23801): ]just_a_string[ […]

如何使用BigDecimal显示总是2个小数点的数字?

我使用BigDecimal来获得一些价格值。 需求是这样的,无论我们从数据库获取什么值,显示的值应该有2个小数点。 例如: 取值为1 – 应显示为1.00 取值为1.7823 – 应显示为1.78 我正在使用setScale(2, BigDecimal.ROUND_HALF_UP)但仍有一些地方,如果来自DB的数据是整数,则显示相同的!! 我的意思是如果DB的值为0,则仅显示为0。 我希望它显示为0.00 谢谢