小编Sop*_*hie的帖子

与gson的多态性

我在使用Gson反序列化json字符串时遇到问题.我收到一系列命令.该命令可以是start,stop,其他一些命令.当然我有多态,并且start/stop命令继承自命令.

如何使用gson将其序列化回正确的命令对象?

似乎我只得到基类型,即声明的类型,而不是运行时类型.

java polymorphism json gson deserialization

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

Java CLI解析器

我知道这个问题已经被提出,但我正在寻找具有特定功能的Java cli解析器.我希望它能够定义命令行树,从而使用子命令(和多个级别深度).因此,在我到达选项之前,我可以有3-4级命令.这些子命令是互斥的.谢谢

java command-line-interface subcommand picocli

10
推荐指数
3
解决办法
3369
查看次数

使用java ping多平台

我需要对某些ip /机器执行ping操作.代码可以在任何类型的平台(windows,linux,mac)上执行,我需要获取有关丢失和往返时间的信息.所以java的ping操作不够好,因为那时我需要将ping响应解析为字符串,这对于每个平台和每个OS语言都是不同的.那我需要做什么?我知道有类似JNI的东西,但我是java的新手,所以需要一些帮助.它仍然意味着我需要每个平台都有本机实现?任何例子或建议?

java java-native-interface ping icmp

7
推荐指数
2
解决办法
3217
查看次数

如何使用基于JAX-RS的Restlet自动将@DefaultValue映射到枚举参数?

我有一个Web API,用户可能(或可能不)传输URL参数,例如bird,dog等等.

我希望此参数映射到服务器端的枚举,如:

@POST
@Path("/zoo")
public Response createNewAnimal(
                        @QueryParam("animal") 
                        @DefaultValue("CAT") AnimalType type 
                ) throws Exception 

...

public enum AnimalType {
    BIG_BIRD,
    SMALL_CAT;
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

在处理Web请求时,Enum.valueOf()正在调用.当然它失败了,因为该bird用户使用的URL参数与Enum(AnimalType.BIG_BIRD)中的标识符不匹配.

没有办法覆盖到valueOf()方法(它是静态的......),并且设置构造函数没有帮助(它是相反的逻辑方向).

所以也许你知道一个很好的解决方案,而不是只使用if ... else ...?

java enums jax-rs web

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

如何监控文件上传进度?

我需要将文件上传到服务器并监视它的进度.我需要通知每次发送多少字节.

例如,在下载的情况下,我有:

HttpURLConnection  connection = (HttpURLConnection) m_url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
while ((currentBytes  = stream.read(byteBuffer)) > 0) {                    
    totalBytes+=currentBytes;
    //calculate something...
}
Run Code Online (Sandbox Code Playgroud)

现在我需要为上传做同样的事情.但如果使用

OutputStreamWriter stream = new OutputStreamWriter(connection.getOutputStream());
stream.write(str);
stream.flush();
Run Code Online (Sandbox Code Playgroud)

比我无法获得任何进程通知,关于发送了多少字节(它看起来像自动操作).

有什么建议?

谢谢

java upload post

3
推荐指数
2
解决办法
2185
查看次数

HttpServer上的java.lang.OutOfMemoryError下载大数据

我有java 6嵌入式HttpServer.它有一个句柄,允许客户下载一个大文本文件.问题是,当服务器有10个以上的同时客户端时,我会遇到内存异常.我很清楚问题出在Http Server周围.

   HttpServer m_server = HttpServer.create(new InetSocketAddress(8080), 0);
   m_server.createContext("/DownloadFile", new DownloadFileHandler() );

   public class DownloadFileHandler implements HttpHandler {

         private static byte[] myFile = new String("....................").getBytes(); //string about 8M

         @Override
         public void handle(HttpExchange exchange) throws IOException {
                exchange.sendResponseHeaders(HTTP_OK, myFile .length);                 OutputStream responseBody = exchange.getResponseBody();
                responseBody.write(myFile );
                responseBody.close();
         } 
   }
Run Code Online (Sandbox Code Playgroud)

现在我得到的例外是:

java.lang.OutOfMemoryError: Java heap space 
at java.nio.HeapByteBuffer.<init>(Unknown Source)
at java.nio.ByteBuffer.allocate(Unknown Source)
at sun.net.httpserver.Request$WriteStream.write(Unknown Source)
at sun.net.httpserver.FixedLengthOutputStream.write(Unknown Source) 
at java.io.FilterOutputStream.write(Unknown Source) 
at sun.net.httpserver.PlaceholderOutputStream.write(Unknown Source) 
at com.shunra.javadestination.webservices.DownloadFileHandler.handle(Unknown Source) 
at com.sun.net.httpserver.Filter$Chain.doFilter(Unknown Source) 
at sun.net.httpserver.AuthFilter.doFilter(Unknown …
Run Code Online (Sandbox Code Playgroud)

java out-of-memory com.sun.net.httpserver

0
推荐指数
2
解决办法
4873
查看次数