小编gam*_*may的帖子

在没有node.js的情况下使用socket.io standalone

(JavaScript新手)

我正在尝试构建一个基于JavaScript的客户端应用程序,它通过套接字与服务器应用程序通信.我遇到了socket.io.是否可以使用socket.io而没有任何node.js依赖项?

我已经克隆了socket.io github并编写了一个简单的客户端html来连接服务器(如果需要可以发布代码).但它没有连接到服务器.

(背景信息:我们需要一个在Win32上运行的简单配置客户端实用程序,它与支持与自定义数据包格式协议的套接字通信的自定义服务器通信.我们认为HTML/JS /不是通过通常的MFC/.NET CSS提供了更好的解决方案.为此,我考虑了以下选项:

  1. Titanium:Works,但需要安装运行时
  2. HTML5 WebSocket:不受广泛支持 - 适用于Chrome但需要IE10
  3. socket.io:试图让它工作
  4. 任何其他?(如果需要,可以将此问题作为单独的帖子发布))

javascript windows websocket

21
推荐指数
2
解决办法
2万
查看次数

到处都是eclipse键绑定

我想分配一个eclipse键快捷键.说,Ctrl+ Shift+ F="文件搜索".

我可以在Window - > Preferences - > General - > Keys - > File Search - > Binding:Ctrl+ Shift+中指定它F

我还需要选择"何时".我可以选择"编辑Java源代码","编辑Java脚本源"等.

是否可以指定此密钥快捷方式在所有地方都有效?我的意思是我可以在eclipse中做任何事情 - 编辑Java,js,xml等,或者我可以在Console窗口查看日志.我将突出显示我要搜索的单词并按Ctrl+ Shift+ F,eclipse只需调出"文件搜索"对话框.

如何在不必将绑定分配给"When"下拉列表中的每个项目的情况下执行此操作?

eclipse keyboard-shortcuts

12
推荐指数
1
解决办法
3971
查看次数

Docker创建了巨大的图像大小

我拉基础ubuntu:最新图像(大小192.7 MB)并且只安装了Oracle java7(JDK)(tar.gz~53MB的大小)并提交了生成的图像.图像大小为903MB.

为什么图像尺寸会大幅增加?我们仍然需要添加其他组件(tom cat,vertx,mysql等).图像尺寸将变得难以管理.

有关如何缩小图像尺寸的任何提示?

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
gammay/baseimage    v0.1a               80324b762c5e        21 minutes ago      903.6 MB
ubuntu              latest              9bd07e480c5b        2 weeks ago         192.7 MB
Run Code Online (Sandbox Code Playgroud)

java docker

11
推荐指数
1
解决办法
3686
查看次数

神经网络预测第n个方格

我正在尝试使用多层神经网络来预测第n个方格.

我有以下训练数据,包含前99个方格

1    1
2    4
3    9
4    16
5    25
...
98   9604
99   9801
Run Code Online (Sandbox Code Playgroud)

这是代码:

import numpy as np
import neurolab as nl

# Load input data
text = np.loadtxt('data_sq.txt')

# Separate it into datapoints and labels
data = text[:, :1]
labels = text[:, 1:]

# Define a multilayer neural network with 2 hidden layers;
# First hidden layer consists of 10 neurons
# Second hidden layer consists of 6 neurons
# Output layer consists of 1 …
Run Code Online (Sandbox Code Playgroud)

artificial-intelligence machine-learning neural-network python-3.x tensorflow

9
推荐指数
2
解决办法
1323
查看次数

Spring Bean:在构造函数之前初始化autowired属性吗?

@Component
public class BeanA {
...
}


@Component
public class BeanB {

    @Autowired
    BeanA beanA;

    public BeanB() {
        // Use beanA
        beanA.method();
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以假设在调用BeanB构造函数之前创建并初始化BeanA吗?(我知道我们可以将BeanA作为构造函数arg传递给BeanB,这更多是了解spring/java初始化序列的好奇心问题)

spring

7
推荐指数
1
解决办法
5661
查看次数

Docker:哪种方法更好?WAR嵌入图像或基本图像+战争?

刚刚开始玩Docker.要在tomcat上部署战争,似乎有两种方法:

  1. 使用嵌入在图像中的java + tomcat + war创建映像
  2. 使用java + tomcat创建基本映像,然后将war"注入"基础映像(例如,通过主机卷安装)

方法1:

  • 需要为每个构建创建一个图像
  • 完全捆绑的解决方案
  • 由于图像大小较大,为每个构建维护一个映像并共享映像以进行下游部署可能会成为一个问题

方法2:

  • 在docker hub中保留基本映像
  • 从外部添加战争并运行
  • 较小的可分发大小(仅限战争),但部署团队需要"知道"要运行的映像名称的额外步骤

这些方法中的哪一种通常用于生产?

java tomcat docker

7
推荐指数
1
解决办法
1432
查看次数

Hazelcast:连接到远程集群

我们有一组Hazelcast节点,它们全部在一个远程系统(具有多个节点的单个物理系统)上运行。我们想从外部客户端连接到该集群-一个Java应用程序,该应用程序使用以下代码连接到Hazelcast:

        ClientConfig clientConfig = new ClientConfig();
        clientConfig.addAddress(config.getHost() + ":" + config.getPort());

        client = HazelcastClient.newHazelcastClient(clientConfig);
Run Code Online (Sandbox Code Playgroud)

其中,host是远程IP,端口是5701。

这仍然连接到本地主机(127.0.0.1)。我想念什么?

编辑:

如果Java客户端是在本地系统上运行的唯一hazelcast应用程序,则它将无法连接并引发异常: java.lang.IllegalStateException: Cannot get initial partitions!

从日志中:

14:58:26.717 [main] INFO cmbpssHazelcastCacheClient-创建新的Hazelcast实例

14:58:26.748 [main] INFO com.hazelcast.core.LifecycleService-HazelcastClient [hz.client_0_dev] [3.2.1]正在启动

14:58:27.029 [main] INFO com.hazelcast.core.LifecycleService-HazelcastClient [hz.client_0_dev] [3.2.1]已启动

14:58:27.061 [hz.client_0_dev.cluster-listener] INFO com.hazelcast.core.LifecycleService-HazelcastClient [hz.client_0_dev] [3.2.1]是CLIENT_CONNECTED

14:58:27.061 [hz.client_0_dev.cluster-listener]信息chclient.spi.ClientClusterService-

成员[5] {成员[127.0.0.1]:5701成员[127.0.0.1]:5702成员[127.0.0.1]:5703成员[127.0.0.1]:5704成员[127.0.0.1]:5705}

14:58:47.278 [main]错误chcspi.ClientPartitionService-提取群集分区表时出错!

com.hazelcast.spi.exception.RetryableIOException:java.util.concurrent.ExecutionException:com.hazelcast.core.HazelcastException:java.net.ConnectException:连接被拒绝:没有更多信息……原因:java.util.concurrent。 ExecutionException:com.hazelcast.core.HazelcastException:java.net.ConnectException:连接被拒绝:没有更多信息

在java.util.concurrent.FutureTask.report(未知来源)〜[na:1.8.0_31]

在java.util.concurrent.FutureTask.get(未知来源)〜[na:1.8.0_31]

在com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.getOrConnect(ClientConnectionManagerImpl.java:282)〜[BRBASE-service-manager-1.0.0-jar-with-dependencies.jar:na]

...省略了14个通用框架

引起原因:com.hazelcast.core.HazelcastException:java.net.ConnectException:连接被拒绝:没有更多信息

在com.hazelcast.util.ExceptionUtil.rethrow(ExceptionUtil.java:45)〜[BRBASE-service-manager-1.0.0-jar-with-dependencies.jar:na] ...

java hazelcast

7
推荐指数
1
解决办法
8199
查看次数

可运行的jar如何在运行时加载外部xml文件?

(这似乎是一个微不足道的问题,但坚持了2天:()

我有一个可运行的jar(用它创建maven assembly plugin).jar中的类在类路径中查找xml文件.但是,我们不希望将jar文件中的xml文件捆绑在一起并希望将其外部化.

试过到现在:

  1. 在运行时设置类路径:

    java -classpath ./conf -jar my-jar-with-dependencies.jar
    
    Run Code Online (Sandbox Code Playgroud)

==>不加载(conf文件夹包含xml)

  1. 在汇编程序插件中设置classpath

            <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.xxx.Test</mainClass>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>./conf/</classpathPrefix>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    
    Run Code Online (Sandbox Code Playgroud)

==>不会将ClassPath添加到runnable jar中的MANIFEST.MF

编辑:

生成MAINFEST.MF在jar中:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: xxx
Build-Jdk: 1.7.0_21
Main-Class: com.xxx.Test
Run Code Online (Sandbox Code Playgroud)

编辑2:

所以我编辑了MANIFESTjar中生成的并重新创建了jar.仍然没有找到xml!

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: xxx
Build-Jdk: 1.7.0_21
Main-Class: com.xxx.Test
Class-Path: . …
Run Code Online (Sandbox Code Playgroud)

java xml jar maven

7
推荐指数
1
解决办法
847
查看次数

Logback 记录器记录两次

我想在我的应用程序中将 slf4j+logback 用于两个目的 - 日志和审计。

对于日志记录,我以正常方式记录:

static final Logger logger = LoggerFactory.getLogger(Main.class);
logger.debug("-> main()");
Run Code Online (Sandbox Code Playgroud)

对于审计,我创建了一个特殊的命名记录器并登录到它:

static final Logger logger = LoggerFactory.getLogger("AUDIT_LOGGER");
Object[] params =
    { new Integer(1) /* TenantID */, new Integer(10) /* UserID */, msg};
logger.info("{}|{}|{}", params);
Run Code Online (Sandbox Code Playgroud)

登录配置:

<logger name="AUDIT_LOGGER" level="info">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS}|%msg%n
            </pattern>
        </encoder>
    </appender>
</logger>

<root level="all">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
            </pattern>
        </encoder>
    </appender>
</root>
Run Code Online (Sandbox Code Playgroud)

问题:通过审计记录器记录的消息出现两次 - 一次在 AUDIT_LOGGER 下,一次在根记录器下。

14:41:57.975 [main] 调试 com.gammay.example.Main - -> main()

14:41:57.978|1|10|欢迎来到主 …

java logback slf4j

6
推荐指数
2
解决办法
4907
查看次数

maven build - 版本信息

我们在POM中指定versionId,相应地maven生成foo-version.jar.示例:foo-1.0-SNAPSHOT.jar.

是否可以使用maven执行以下操作?

  • 不在POM中指定versionId,而是从命令行指定构建版本.这将有助于不对POM中的版本进行"硬编码"并为每个版本更改它,而是通过超级构建脚本指定它.

java maven

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

Spring+Hibernate 验证:抛出 Hibernate Exceptions 而不是 Spring 异常

我有一个简单的项目(详细信息如下),它有一个 Spring bean 并使用 HV 是验证提供程序,用于方法参数验证。

问题:当验证失败时,它会抛出 Hibernate 异常 ( org.hibernate.validator.method.MethodConstraintViolationException)。但我希望它抛出 Spring 异常(org.springframework.web.bind.MethodArgumentNotValidException ),因为 Spring 是包装接口。据我所知,我不在乎谁是验证实现者,只需要处理 Spring 定义的类。

问题一:上面的说法是否正确,是否应该抛出Spring异常?

问题 2:如果 Hibernate 异常是常态,我如何将其映射到友好消息(在 Google 上找不到此信息)

产品经理.java:

@Component
@Validated
public class ProductManager {

    public void createProduct(@Valid Product product) {

    }
}
Run Code Online (Sandbox Code Playgroud)

产品.java:

public class Product {

    private int id;

    @NotNull
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String …
Run Code Online (Sandbox Code Playgroud)

java validation spring hibernate

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

Hazelcast:关于多节点一致性的问题

(我找不到一个好的消息来源解释这个,所以如果它在其他地方可用,你可以指出我)

  1. Hazelcast在群集中的所有节点上复制数据.因此,如果在其中一个节点中更改了数据,节点是否会更新自己的副本,然后将其传播到其他节点?

  2. 我在某处读到每个数据都归节点所有,Hazelcast如何确定所有者?业主是根据数据结构中的每个数据结构还是按键确定的?

  3. Hazelcast遵循"最终一致"的原则吗?(当数据在节点之间传播时,可能会有一个小窗口,在此期间数据可能在节点之间不一致)

  4. 如何处理冲突?(两个节点同时更新相同的键值)

consistency eventual-consistency in-memory hazelcast

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

logback:AsyncAppender比Synchronous FileAppender花费更多时间

我看到logback异步日志记录提供的性能比同步日志记录差.详情如下.

我能错过什么?

测试类:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main extends Thread {

    public static final Logger defaultLogger = LoggerFactory.getLogger(Main.class);

    public static void main(String[] args) throws IOException {
        new Main().start();
        System.out.println("... Thread started\n");

        // This is to block till thread finishes writing
        System.in.read();
    }

    public void run() {
        long start = System.currentTimeMillis();

        for(int i = 0; i < 1000000; i++) {          
            defaultLogger.warn("Default logger:");
        }

        long end = System.currentTimeMillis();

        System.out.println("\n**** " + new Long(end - start));
    }
}
Run Code Online (Sandbox Code Playgroud)

logback.xml:

<configuration>

    <appender …
Run Code Online (Sandbox Code Playgroud)

java logback slf4j

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