Tag: java

Java Websockets +事件监听器。 这是正确的方法吗?

我目前正在创build一个将使用Websockets的Java Web应用程序。 服务器将是一个Java类,用@ServerEndpoint注解,称为Server.java ,客户端将是一个Web浏览器,所以我肯定会使用JavaScript访问Websocket端点。 我需要一个WebSocket,因为我想在服务器发生变化时通知客户端。 我们有一个名为EventManager的实用程序类,它pipe理在子系统中发生的所有事件。 我打算将Server.java注册为EventManager的依赖项,以便每当EventManager有新的东西时,它都会通知它的所有依赖项这个特定的事件发生了。 这是好的做法吗? 我想过使用AJAX /长轮询,但我相信服务器到客户端的行为需要遵守。 另外,我无法获取数据库中的事件,我不得不依靠EventManager来通知我的WebSocket端点。 我想要的示例场景: 客户端A连接到Server.java 客户端B连接到Server.java (到现在Server.java ,将有两个会话处于活动状态) EventManager检测到一个事件并通知Server.java所有实例。 Server.java发送消息给所有活动的Websocket会话。 浏览器使用Javascript检索通过Websocket发送的数据并显示它。 我被告知使用Node.js,但是我仍然在推动Java实现,因为: 我完全没有使用Node.js的经验 我们的EventManager类将很难转换成Node.js的Javascript

避免JavaScript前端和Java后端的validation码重复?

我们有一个标准的Web应用程序,前端使用Angular,后端使用Java 7编写。我注意到的是,我们得到了很多重复的代码。 也就是说,validation是通过angular度来执行客户端的,但是我不能完全相信他,因为用户可以禁用客户端validation并简单地向服务器提交发布的查询。 因此,我必须在服务器端重复Java中的相同validation逻辑。 这是非常乏味的,但我不知道如何避免这种情况。 也许我可以用一个javascript框架(假设它是Node.js)编写一些后端部分,可以使用与前端相同的validation库,并使Java后端与node.js交互? 为了解决这个问题,最好的办法是什么?

RSA Javaencryption和Node.js解密不起作用

我有一个系统需要在javascript中生成RSA密钥对,然后将公钥存储在服务器端的数据库中(作为string),然后在Java中的服务器端将使用存储的公共密钥encryptionstring密钥并发送到客户端,用私钥解密string。 我在客户端浏览器上使用节点rsa的browsified版本。 首先在客户端,我生成一个密钥对并导出密钥,将它们存储为string var NodeRSA = require('node-rsa'); var key = new NodeRSA({b: 1024}); key.exportKey("pkcs8-private"); key.exportKey("pkcs8-public-pem"); 导出的私钥存储在服务器的客户端和公共端 接下来,我用java来encryption一个接收到公钥的string,所以我把pkcs8公钥parsing成一个Java PublicKey对象。 String pubKey = "<Retrieved pkcs8 public key>"; pubKey = pubKey.replaceAll("(-+BEGIN PUBLIC KEY-+\\r?\\n|-+END PUBLIC KEY-+\\r?\\n?)", ""); byte[] keyBytes = Base64.decodeBase64(pubKey); X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes); KeyFactory kf = KeyFactory.getInstance("RSA"); PublicKey pk = kf.generatePublic(spec); 并用它encryption文本 byte[] cipherText; Cipher cipher […]

将AES Java解密代码移植到Node.js

我有我想要移植到Node.js的以下Java代码: // Java byte[] rawKey = "deadbeefdeadbeef".getBytes("us-ascii"); SecretKeySpec skeySpec = new SecretKeySpec(rawKey, "AES"); Cipher cip = Cipher.getInstance("AES/ECB/NoPadding"); cip.init(Cipher.DECRYPT_MODE, skeySpec); byte[] plaintext = cip.doFinal(ciphertext, 0, ciphertext.length); 这是我使用stream的Node.js的尝试 // JS, using the crypto streams API var decipher = crypto.createDecipher('aes-128-ecb', 'deadbeefdeadbeef'); decipher.setAutoPadding(false); decipher.pipe(concat(function(plaintext) { console.log(plaintext); }); decipher.end(ciphertext); 而且,Node.js也尝试使用旧的.update()和.final() API: // JS, using the `.update()` and `.final()` API var […]

如何在Node JS中编写ActiveMQ的发件人应用程序

我想创build实现一个JMS发送器应用程序的消息传递和创build相同的JAVA。 这是我在Java中的示例代码片段。 try { factory = new ActiveMQConnectionFactory("tcp://localhost:61616"); connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue("SAMPLEQUEUE"); producer = session.createProducer(destination); try { TextMessage message = session.createTextMessage(); message.setText("hello"); producer.send(message); System.out.println("Sent: " + message.getText()); } catch (IOException e) { e.printStackTrace(); } } catch (JMSException e) { e.printStackTrace(); } 这工作正常,我也能够收到我的接收器的消息。 我想在Node JS中更改发件人实现,并使其成为Node JS应用程序。 在Node JS上searchActiveMQ后,我对Node JS感到陌生。 […]

套接字连接 – Java添加字节

我想通过套接字从我的Android设备发送一个string到我的node.js服务器。 连接已经工作,但是每当我发送string,服务器接收额外的字符。 这是我发送string“hans”到node.js服务器时收到的内容: Buffer ac ed Buffer 00 05 77 04 68 61 6e 73 作为utf8string: ?? ♣w♦hans 这是发送string的Java部分: clientSocket = new Socket("xxx.xxx.xxx.xxx",9988); ObjectOutputStream clientOut = new ObjectOutputStream(clientSocket.getOutputStream()); String sendString = "hans"; clientOut.write(sendString.getBytes()); clientOut.flush(); 那么为什么会这样呢?

如何为node.js JDBC模块configurationJava堆大小?

在我的node.js应用程序中,我使用JDBC连接到Oracle数据库。 我需要增加我的Java堆空间,以防止以下错误: java.lang.OutOfMemoryError: Java heap space 我知道有一个terminal选项设置最大的Java堆大小( -Xmx<size> ),但问题是,我没有明确地运行java,它发生在我的JDBC模块(这取决于java模块 ),所以我不能使用该terminal选项。 那么如何在我的情况下configurationJava堆大小?

用Java和Node.js创buildDocker容器

我不知道为什么我期望这个工作: # Dockerfile FROM node:6 FROM java:8 但它并没有真正的工作 – 看起来像第一个命令被忽略,第二个命令的作品。 有没有一个简单的方法来在Docker容器中安装Node.js和Java? 最终,我试图解决的问题是,我运行Selenium Webdriver时出现ENOENT错误 – [20:38:50] W/start – Selenium Standalone server encountered an error: Error: spawn java ENOENT 而现在我认为这是因为Java没有安装在容器中。

Android与websocket通信(Node Websocket服务器和Android Java客户端)。 不要在Android 4上工作

我试图用作Android客户端Websocket – weberknecht用一个线程发送每一秒消息给一个Nodejs Websocket(js): Node WebSocket Server 它在Android 2或2.3.3上正常工作,但是当我在Android 4上我在websocket.connect()上得到一个错误; 你知道我为什么或者我做错了什么吗? 我的代码是: public class MainThread extends Thread { private boolean is_running; private URI url = null; private de.roderick.weberknecht.WebSocket websocket = null; public MainThread() { this.is_running = false; try { url = new URI("ws://192.168.1.88:8088/"); websocket = new WebSocketConnection(url); websocket.setEventHandler(new WebSocketEventHandler() { public void onOpen(){ System.out.println("–open"); } […]

从Java运行TypeScript编译器

我想从我的Java应用程序运行TypeScript编译器。 首先,我想弄清楚,是否可以从命令行运行没有Node.js的编译器: $ jsc tsc.js 但是这样我就不会有任何的错误,也没有帮助。 $ jsc tsc.js myscript.ts 会让我无处可去。 从java直接运行js代码很容易(我希望以这种方式运行编译器),但是可以在没有node.js的情况下运行TypeScript编译器吗? 编辑: 我确认与犀牛一样的行为。