Netty ByteBuf在解码时不会获得大输入的完整消息

有一个遗留应用程序通过TCP执行json。 我使用netty服务器,我想通过Gson将json转换为Pojo。 为了做到这一点,我转换创建了一个Decoder,它将ByteBuf作为输入并创建My Object。 问题是Bytebuf的大小为1024,json比那个大得多(> 20mo) @Sharable public class RequestDecoder extends MessageToMessageDecoder { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List out) throws Exception { InputStream json = new ByteBufInputStream(msg); InputStreamReader inputStreamReader = new InputStreamReader(json, Charsets.UTF_8); JsonReader reader; reader = new JsonReader(inputStreamReader); reader.setLenient(true); Request object = new Gson().fromJson(reader, Request.class); try { reader.close(); } catch (IOException […]

ASM通过代码查找偏移量

我想在我使用的测试用例中找到不同方法的偏移量。 我可以找到方法开始和结束的位置,我查找操作码RETURN和ARETURN(我在方法visitInsn()中扩展一个methodVisitor的类中这样做),但是我无法找到那些在那里发生的偏移量字节码。 有任何想法吗? 为了以防万一:我正在使用ASM的核心API,我知道树API可以帮助我找到我需要的东西,但树API使一切都变得缓慢并使用内存,我买不起任何这些,所以我使用核心API

生活中的内部portlet通信

我是liferay的新人。 所以,我只想解释一下我的情景。 实际上我的网页上有两个portlet – 一个在左侧,另一个在右侧: 他左侧的portlet包含两个超链接,例如demo1和demo2。 我还有另外两个portlet说demo1Portlet和demo2Portlet。 默认情况下将显示右侧portlet“demo1Portlet”,而不是右侧。 现在我要做的是,如果我点击demo2链接,那么右侧portlet将会改变,它将显示“demo2Portlet”,如果我点击demo1链接,那么它将在右侧显示“demo1Portlet”。 任何人都可以知道如何完成这项任务吗? 请尽快回复我。 我不熟悉liftray,所以我不知道这可以通过IPC还是没有它来实现。 请解释一下会有什么方法。 谢谢。

如何使用java在alfresco中以编程方式获取相关(对等关联)节点?

所以我目前有一个节点,即广告系列,它有一个引用名为authorised_by的用户表的字段/关联。 在代码中我可以像这样设置关联: nodeService.createAssociation(mcdNodeRef, newAuthority, CustomContentModel.ASSOC_MCD_CAMP_AUTHORITY); 现在我需要基本上对这个过程进行逆向工程,并将关联的值从露天数据库中取回,但是没有getAssociation方法,似乎无法解决这个问题。 谢谢

复制同一输出xml文件-java中的节点

这是我的示例文件“example.xml” 7.0 FIN ED XXX 2015-05-16 90 KIA 2.这是我解析文件“example.xml”的java代码: public static void main(String argv[]) { try { Properties prop = System.getProperties(); File file = new File(“E:/workspace/example.xml”); DocumentBuilderFactory dbildfactory =DocumentBuilderFactory.newInstance(); DocumentBuilder dbild = dbildfactory.newDocumentBuilder(); Document doc = dbild.parse(file); doc.getDocumentElement().normalize(); NodeList nodeL = doc.getElementsByTagName(“ALL”); for (int s = 0; s < nodeL.getLength(); s++) { Node nodde = […]

我该如何处理Java中的multithreading?

我正在研究与Java相关的实际场景;套接字程序。 现有系统和预期系统如下。 现有系统 – 系统检查是否满足某个条件。 如果是这样它将创建一些要发送的消息并将其放入队列中。 队列处理器是一个单独的线程。 它会定期检查队列中是否存在项目。 如果找到任何项目(消息),它只是将消息发送到远程主机(硬编码)并从队列中删除该项目。 预期的系统 – 就是这样的。 在满足特定条件时创建消息,但在每种情况下接收者都不相同。 所以有很多方法。 将消息放入同一队列但使用其接收者ID。 在这种情况下,第二个线程可以识别接收器,以便可以将消息发送到该接收器。 有多个线程。 在这种情况下,当满足条件并且接收器处于“新”状态时,它会创建一个新队列并将消息放入该队列。 并且新线程初始化以处理该队列。 如果下一个消息被定向到同一个接收者,它应该放在同一个队列中,如果不是新队列,则应该创建该线程。 现在我想实现第二个,有点卡住了。 我该怎么做? 骨架就足够了,您不必担心如何创建队列等… 🙂 更新:我也认为方法1是最好的方法。 我读了一些关于线程的文章并做出了这个决定。 但是,了解如何实施方法2也是非常值得的。

使用hadoop-yarn-server-nodemanager编译错误

我想在windows7上安装hadoop 2.3.0 使用Windows sdk 7.1 maven命令: mvn package -Pdist,native-win -DskipTests -Dtar 我收到以下错误: 我搜索了这个错误,但我找不到任何解决方案 [ERROR] location: class ApplicationImpl [ERROR] C:\hdfs\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-s erver-nodemanager\src\main\java\org\apache\hadoop\yarn\server\nodemanager\contai nermanager\application\ApplicationImpl.java:[391,6] error: cannot find symbol [ERROR] symbol: class ApplicationContainerFinishedEvent [ERROR] location: class AppFinishTransition [ERROR] C:\hdfs\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-s erver-nodemanager\src\main\java\org\apache\hadoop\yarn\server\nodemanager\contai nermanager\application\ApplicationImpl.java:[392,11] error: cannot find symbol [ERROR] symbol: class ApplicationContainerFinishedEvent [ERROR] location: class AppFinishTransition [ERROR] C:\hdfs\hadoop-yarn-project\hadoop-yarn\hadoop-yarn-server\hadoop-yarn-s erver-nodemanager\src\main\java\org\apache\hadoop\yarn\server\nodemanager\contai nermanager\application\ApplicationImpl.java:[416,14] error: cannot […]

如何从随机访问文件中删除记录?

我想知道如何从随机访问文件中删除记录。 这是我如何添加到我的RAF,不知道如何删除它:X public void addNewStudent(String name, String formClass, String emailAddress, String country1, String country2, String universityChoice) { try { RandomAccessFile theFile = new RandomAccessFile(“studentData.dat”,”rw”); long records = (theFile.length()+299)/300; //Number of records if(theFile.length()>0) //Check if the file is empty or not { for(long x=0;x<records;x++) { theFile.seek(x*300); String currentName = theFile.readUTF(); if(name.equalsIgnoreCase(currentName)) //Check if student exists in […]

查找Galaxy Tab 10.1的IP地址以供应用

我已经为HTC欲望编写了一个应用程序,它获取设备的IP地址并将其打印到屏幕上。 当我将此应用程序安装到我的选项卡10.1时,IP地址以字母和数字以奇怪的格式出现? private String getIpAddress() { try { for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch(SocketException ex) { Log.e(TAG , ex.toString()); } return null; } 标签10.1有什么不同? (IP返回 – fe80 :: be47:60ff:feff:21e2) […]

来自Java服务器的持久http连接

我想在Java spring服务器和Android客户端之间创建持久连接。 我需要的是一种具有持久(长期HTTP)连接的推送机制,一旦可用,它就会将所有信息从服务器传输到客户端。 是否有任何可用的框架可以支持Java Spring。 有助于我实现此目的的教程或文档。