小编Lan*_*ali的帖子

BindException /在加载时使用HttpClient时打开的文件太多

我有1000个专用的Java线程,每个线程每秒轮询一个相应的url.

public class Poller { 
    public static Node poll(Node node) { 
        GetMethod method =  null; 
        try { 
            HttpClient client = new HttpClient(new SimpleHttpConnectionManager(true)); 
            ......
        } catch (IOException ex) { 
            ex.printStackTrace(); 
        } finally { 
            method.releaseConnection(); 
        } 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

线程每一秒运行一次:

for (int i=0; i <1000; i++) { 
    MyThread thread = threads.get(i) // threads  is a static field 
    if(thread.isAlive()) { 
        // If the previous thread is still running, let it run. 
    } else { 
        thread.start(); 
    } 
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我每隔一秒运行一次该作业,我会得到如下随机异常:

java.net.BindException: Address already in use …
Run Code Online (Sandbox Code Playgroud)

java apache-commons-httpclient

5
推荐指数
1
解决办法
1万
查看次数

使用Spring的JPA手动事务服务和DAO层

我正在使用JPA和Spring.如果我让Spring处理事务,那么假设EntityManager已正确注入DAO,这就是我的服务层的样子:

MyService {

   @Transactional
   public void myMethod() {
       myDaoA.doSomething();
       myDaoB.doSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我要手动执行事务,我必须确保将EntityManager的实例传递到事务中的每个DAO中.任何想法如何更好地重构?我很难做新的MyDaoA(em)或将em传递给每个DAO方法,如doSomething(em).

MyService {

   private EntityManagerFactory emf;

   public void myMethod() {
       EntityManager em = emf.createEntityManager();
       EntityTransaction tx = em.getTransaction();
       MyDaoA myDaoA = new MyDaoA(em);
       MyDaoB myDaoB = new MyDaoB(em);
       try {
           tx.begin();
           myDaoA.doSomething();
           myDaoB.doSomething();
           tx.commit();
       } catch(Exception e) {
           tx.rollback();
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa transactions

5
推荐指数
1
解决办法
6805
查看次数

运行具有外部依赖项的Scala脚本

我在/Users/joe/.scala/lib下面有以下jar:

commons-codec-1.4.jar       
httpclient-4.1.1.jar        
httpcore-4.1.jar
commons-logging-1.1.1.jar   
httpclient-cache-4.1.1.jar  
httpmime-4.1.1.jar
Run Code Online (Sandbox Code Playgroud)

下面是我用scala编写的test.sh.

#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $cp
exec scala -classpath $cp $0 $@
!#
println(new org.apache.commons.httpclient.HttpClient())
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

$ ./test.sh 
#!/bin/sh -v
L=`cd /Users/joe/.scala/lib;pwd`
cd /Users/joe/.scala/lib;pwd
cp=`echo $L/*.jar|sed 's/ /:/g'`
echo $L/*.jar|sed 's/ /:/g'
echo $cp
/Users/joe/.scala/lib/commons-codec-1.4.jar:/Users/joe/.scala/lib/commons-logging-1.1.1.jar:/Users/joe/.scala/lib/httpclient-4.1.1.jar:/Users/joe/.scala/lib/httpclient-cache-4.1.1.jar:/Users/joe/.scala/lib/httpcore-4.1.jar:/Users/joe/.scala/lib/httpmime-4.1.1.jar
exec scala -classpath $cp $0 $@
/Users/joe/Desktop/scala/./test.sh:7: error: object httpclient is not a member of package org.apache.commons
println(new org.apache.commons.httpclient.HttpClient())
                               ^
one error found
Run Code Online (Sandbox Code Playgroud)

但是,没有任何类路径依赖关系的简单工作虽然:hello.sh

#!/bin/sh
exec scala "$0" "$@"
!#

println(new java.util.Date())
Run Code Online (Sandbox Code Playgroud)

知道我在第一个例子中做错了什么吗?或者,在使用scala脚本时,设置类路径依赖关系的最佳方法是什么?

java bash scripting jvm scala

5
推荐指数
2
解决办法
2521
查看次数

将链接发布为"提交"按钮

   <form method="POST" action="auth/signin">
        Username: <input name="username" type="text" value=""/>
        Password: <input name="password" type="password" value=""/>
        <a href="auth/signin">Log In</a>
    </form>
Run Code Online (Sandbox Code Playgroud)

如何在单击"登录"链接时发布参数(而不是使用提交按钮)?

html form-submit

4
推荐指数
1
解决办法
446
查看次数

从另一个列表更新列表

我有一个本地商店中的用户列表,我需要每隔一段时间从远程用户列表更新.基本上:

  1. 如果远程用户已在本地存在,请更新其字段.
  2. 如果本地尚不存在远程用户,请添加该用户.
  3. 如果本地用户未出现在远程列表中,请取消激活或删除.
  4. 如果本地用户也出现在远程列表中,请更新其字段.(与1相同)

例如.远程列表:用户(1,真),用户(2,真),用户(4,真),用户(5,真)

本地列表:用户(1,真),用户(2,假),用户(3,真),用户(6,真)

新的本地列表:用户(1,真),用户(2,真),用户(3,假),用户(4,真),用户(5,真),用户(6,假),

只是一个同步本地列表的简单案例.有没有更好的方法在纯Java中执行此操作而不是以下?我觉得自己很难看自己的代码.

public class User {
    Integer id;
    String email;
    boolean active;

    //Getters and Setters.......

    public User(Integer id, String email, boolean active) {
        this.id = id;
        this.email = email;
        this.active = active;
    }

    @Override 
    public boolean equals(Object other) {
        boolean result = false;
        if (other instanceof User) {
            User that = (User) other;
            result = (this.getId() == that.getId());
        }
        return result;
    }

}




public static void main(String[] args) {

    //From 3rd party
    List<User> …
Run Code Online (Sandbox Code Playgroud)

java collections list-comprehension

3
推荐指数
1
解决办法
2394
查看次数

用于sed替换的私钥中的转义字符

我需要将config.yaml文件中的字符串$ ssh_private_key_contents替换为实际的ssh私钥内容(键的每一行用\n分隔).

$ssh_private_key_contents="-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAvx9xuVc8eq2ug7OgUKQHO2YNgw2qxPN6HyAVRtCb6E8rolnI\nuSnE/CxuNMk1E4+oD+qkL772FXgL656DvKTnXpz3pySFj/KppNmm3chmMQGcXqyV\nQcYyXy/vpKgh4gBYmEi5IM9ksDtAby2OPD089w3gOVFhgvg5307pW4o5ccbmBUub\nB1QNvWYiCB7Po8FLVHq+a5f2bg1ui1IY10F93ej555Bzg/woE9jqPGKBL9iWV0M4\nulUVW42Q4V0lJiyFo724KD30N6zymMQ4SMWExW3BmJRWGtyvWY8hTxHKiuToyywF\nga5AxWaApg/+0T1CKBgypfviOacaKg5PYt050wIDAQABAoIBAH0L1r18HT7q6haT\nbR215GFxqP+I7qVD5C//LsyRaqB5RERJ2DGF6bNQYp640rhEsqIPVHNEzv9G9w2n\nPewsPJFDxCkglR6Ul3gbS7kqB+qicivjYRiS05xB4dpqgxi6Pz0Lv8x+xRMlAUh8\nluZE7uF5u63k2Bb3z+2SVM4mxuTwKpqPmcex/kuHDUdEq0FgHLpBFxXpUwoPjb1J\nCH5RwpU/VVSaEWws2UauXFPYNUJVY0aGPm4id2k3gBWTpvV8ATjw33cgvx13hD+8\nT98tMzAw6Tv6N6gIhrrmWNAA42CcfMxgrfVM6OxhaNkMk7/FaodEBNTMZnwMuvQt\nOyimXbkCgYEA7Ybh2REvjWuZ3xXOe4ei+SmF5f7+XyGwZBbmVWTEzi1Wozhf16Wx\nFkGk5JcnVn/Pl1rfXPBFyrb7D2joe1SQUVY4CK1gVnO2WgAziOVg3Yq9p6hG0m7O\nXLoMckN4Ekt97x4pXmKrfSDuIYTlM0DELtST5MrMSFaVmxLXDce4708CgYEAzfyq\nY9UIYBIlhkJ3GLMA22MAKDYNjuVTHQqOoZsDCUkqr1r+lvKGYblqr5s70R/FbTjJ\n00wa7KYGCnz6D26qMD/TZ319ySTyY4M64GIswFHt/J6H8RgTRgXyv3AI0Yv41T1t\nxQzhO9cuCkbuw99ejDbr/VL14niXysbOkLUDjD0CgYAdvqljtHo+/H2NaT6tS4QG\nLcP91Fvob+CV+CQqB2953kWeNP4TlEVD4z6R/bfIZkMJ0jBshA5JX3a7LEkIwMM9\n3E0yEPwid2UbijDp8Meblrc/Wpxb19Jx3D6YxIgxylBf9Gf70OFmzwvjGLBXJcIr\nlyVaHmdMm8MqY0aZDCzFkwKBgBmPNIVWtcdV+RoDvUtvSrfuPOLAckY85mdAHBqp\nZWMNlSJVJCoOxeXyX+6SUIXOb2zyEvkJBH5Ay5cZkt2/WZbLFKxOwgDneLwoWHHn\nPK5QfDtQYIXl+t5BdrGScUWvHJ05FhnRU1FdjfTwgEgFu3Gijv3MAX6sgAlFSfRi\nwaHxAoGAfLSIH2rUBrVMjFkPsQY1Wg/8lAK0WqM5md19w3aSQREQw/eSAUgwNtw7\nUlDxeC8EfEM65BgqO1Oo3H8vabMRqd55L3Cb/Nb/tYKUG90DeBTOO8CC0RPtD2CS\nqNUWH8qPzaXEJ74ADUupv5ukkpA6zWVg9e4VNDG0cpwZmRBcSIY=\n-----END RSA PRIVATE KEY-----\n"

sed -i 's/$ssh_private_key_contents/'"$ssh_private_key_contents"'/g' config.yaml
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

sed: -e expression #1, char 81: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

我试图逃避/但不断收到更多错误.实际的配置文件包含需要填充的不同类型的此类字符串.

regex bash sed

2
推荐指数
1
解决办法
2337
查看次数

JQuery Ajax调用

我有一个网址: http:// localhost:8080/myapp/discuss/voteup?id = 1

返回以下json:

{"vote":{"value":"100"}}
Run Code Online (Sandbox Code Playgroud)

我正在尝试进行JQuery Ajax调用以向网址发布投票.

$(function(){
 $(".vote-up-post").click(function() {
        var postId = $("#postId");
        alert("Post Value" + postId.val());
        $.ajax({
           type: "GET",
           url: "/myapp/discussions/voteup",
           data: {'id': postId.val()},
           dataType: "json",
           success: function(response){
             $(".post-votes-count").text("100");
           },
           error: function(response){
             alert("Error:" + response);
           }
        });
 });
});
Run Code Online (Sandbox Code Playgroud)

我得到以下弹出的第二条警报消息:

错误:[object XMLHttpRequest]

知道我错过了什么吗?

ajax jquery

0
推荐指数
1
解决办法
3912
查看次数