小编Ami*_* Sh的帖子

具有动态ArrayList项类型的Gson TypeToken

我有这个代码:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
Run Code Online (Sandbox Code Playgroud)

它将JSON字符串转换List为对象.但是现在我希望在运行时定义ArrayList动态类型(不仅仅是myClass).

所述ArrayList的项目类型将与被定义反射.

我试过这个:

    private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
        Type typeOfObjectsListNew = new TypeToken<ArrayList<T>>() {}.getType();
        return typeOfObjectsListNew;
    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.这是例外:

java.sql.SQLException: Fail to convert to internal representation: {....my json....}
Run Code Online (Sandbox Code Playgroud)

java reflection arraylist gson

68
推荐指数
7
解决办法
8万
查看次数

将字节数组放到JSON中,反之亦然

是否可以将byte[](字节数组)放入JSON

如果是这样,我怎么能在java中这样做?然后读取该JSON并再次将该字段转换为byte[]

java json bytearray

48
推荐指数
3
解决办法
15万
查看次数

如何在log4j2中动态打开或关闭rootLogger的一个appender?

如何在运行时通过java在log4j2中动态打开或关闭rootLogger的一个appender?

例如,我想禁用Console Appender:

...
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
...
Run Code Online (Sandbox Code Playgroud)

可能吗?

java log4j log4j2

13
推荐指数
1
解决办法
3716
查看次数

从网页隐藏JSP扩展

我正在开发一个Web应用程序(J2EE,Struts2,JSP,Tomcat)我想从webpages中隐藏.jsp扩展名.

这是我的web.xml的一部分:

     <filter>
         <filter-name>STSDispatcher</filter-name>
         <filter-class>
           org.apache.struts2.dispatcher.FilterDispatcher
         </filter-class>
     </filter>

     <filter-mapping>
         <filter-name>STSDispatcher</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

     <welcome-file-list>
         <welcome-file>Login.jsp</welcome-file>
     </welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并找到了这个解决方案:

    <servlet>  
         <servlet-name>myFoo</servlet-name>  
         <jsp-file>myJSPfile.jsp</jsp-file>  
    </servlet>  
    <servlet-mapping>  
         <servlet-name>myFoo</servlet-name>  
         <url-pattern>/main</url-pattern>  
    </servlet-mapping> 
Run Code Online (Sandbox Code Playgroud)

我尝试过如下,但没有奏效:

例如,我有" alert.jsp ",这是我的web.xml:

<servlet>
    <servlet-name>alert</servlet-name>
    <jsp-file>/alert.jsp</jsp-file>
 </servlet> 

 <servlet-mapping>
     <servlet-name>alert</servlet-name>
     <url-pattern>/alert</url-pattern>
 </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误: "没有映射名称空间/动作名称警报的动作. - [未知位置]"

我该怎么办?

提前致谢.

jsp tomcat struts2 java-ee

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

Jetty消耗100%的CPU,就像一个Jetty BUG

有一个运行的Java Web应用程序 Jetty 9.4.1.v20170120

更新: 相同的结果Jetty 9.4.3.v20170317


这个web-app有一个TCP-client和using Web-socket(Atmosphere)来推送数据.

经过几分钟/小时的工作后,网络应用程序开始使用100%的CPU,没有任何特殊原因.即使它是idle.

在分析和获取线程转储之后,似乎Jetty是高CPU消耗的来源.

那么Jetty有什么问题?这是一个错误吗?

下面我列出了VisualVM在CPU消耗达到100%时进行性能分析(使用)后的一些证据:

  • 运行线程(点击放大图片): 运行具有最长运行时间的线程

  • CPU采样器: 最高的被叫命令

  • CPU采样器 - 每个线程: 每线程cpu次数

  • 记忆采样器: 每线程内存大小

  • 流程状态(使用processExplorer): 过程的状态

  • 流程性能(使用processExplorer): 流程绩效

java profiling jetty cpu-usage java-ee

5
推荐指数
0
解决办法
664
查看次数

使用户无法访问网页

我有一个Web应用程序(J2EE + apache + struts2 + jsp + jqgrid)和一些JSP(在/ webcontent/data_provider文件夹中),jQGrid使用它们从mysql DB获取数据并填充网格,但我不想要用户访问这些JSP.我能做什么?先谢谢好友.

java apache jsp java-ee

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