小编kos*_*ant的帖子

如何让UTF-8在Java webapps中运行?

我需要在我的Java webapp(servlets + JSP,没有使用框架)中使用UTF-8来支持äöå常规芬兰语文本和???特殊情况下的西里尔字母.

我的设置如下:

  • 开发环境:Windows XP
  • 制作环境:Debian

使用的数据库:MySQL 5.x.

用户主要使用Firefox2,但Opera 9.x,FF3,IE7和谷歌Chrome也用于访问该网站.

怎么做到这一点?

java mysql encoding tomcat utf-8

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

将applicationContext拆分为多个文件

将Spring的配置拆分为多个xml文件的正确方法是什么?

目前我有

  • /WEB-INF/foo-servlet.xml
  • /WEB-INF/foo-service.xml
  • /WEB-INF/foo-persistence.xml

web.xml有以下几点:

<servlet>
    <description>Spring MVC Dispatcher Servlet</description>
    <servlet-name>intrafest</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/foo-*.xml
        </param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
            /WEB-INF/foo-*.xml
    </param-value>
</context-param>


<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

实际问题:

  • 这种方法是正确/最好的吗?
  • 我真的需要同时指定中的配置位置DispatcherServlet context-param板块?

为了能够引用foo-servlet.xml从中定义的bean,我需要记住foo-service.xml什么?这是否与指定contextConfigLocation有关web.xml

更新1:

我正在使用Spring framework 3.0.我的理解是,我不需要像这样进行资源导入:

 <import resource="foo-services.xml"/> 
Run Code Online (Sandbox Code Playgroud)

这是正确的假设吗?

configuration spring

58
推荐指数
4
解决办法
11万
查看次数

当http状态代码为"200 OK"时,为什么$ .ajax调用json数据会触发错误回调?

我有以下ajax请求:

        jQuery.ajax({
            async: true,
            type: "GET",
            url: url,
            data: data,
            dataType: "json",
            success: function(results){
                currentData = results;
            },
            error: function(xhr, ajaxOptions, thrownError){
                if (xhr.status == 200) {
                    console.debug("Error code 200");
                }
                else {
                    currentData = {};
                    displayAjaxError(xhr.status);
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

由于某种原因,错误回调被称为事件,虽然http状态代码是200即.请求没问题.为什么是这样?

ajax error-handling jquery json http-status-codes

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

当WAR的大小为41M时,如何避免在WAR中复制40M的java lib?

目前,我的构建过程包括使用WEB-INF/lib下的所有必需的Java库重新打包war文件,然后将war文件复制到开发/演示/生产服务器以由tomcat重新部署.

打包的war文件大小约为41M,目前它有40M的外部java库.一定有更好的方法.你是怎么解决这个问题的?

我的开发机器是一个Windows框,Eclipse作为我的IDE,Ant作为我的构建工具.这些服务器都是带有Tomcat 5.5的Linux机器.

我是否应该将jar文件添加到服务器端的war包中?

java ant tomcat build-process

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

如何在Spring Integration中使用logging-channel-adapter来记录消息头值

我需要使用键"foo_bar"记录消息头的值,以便当该头的值为"baz"时,日志消息看起来像这样:

标题foo_bar的值:baz

如何使用线控和记录通道适配器执行此操作?

spring-integration spring-el

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

MySQL视图中的LONGTEXT字段的JPA本机查询导致错误

我有以下JPA SqlResultSetMapping:

 @SqlResultSetMappings({               
    @SqlResultSetMapping(name="GroupParticipantDTO", 
            columns={ 
                @ColumnResult(name="gpId"),
                @ColumnResult(name="gpRole"),
 //             @ColumnResult(name="gpRemarks")
            }  
    )
Run Code Online (Sandbox Code Playgroud)

使用方式如下:

    StringBuilder sbQuery = new StringBuilder("Select  ");
    sbQuery.append(" gpId, ");
    sbQuery.append(" gpRole, "); 
 // sbQuery.append(" gpRemarks ");

    sbQuery.append(" FROM v_group_participants_with_details ");

    Query query = em.createNativeQuery(sbQuery.toString(), "GroupParticipantDTO");
Run Code Online (Sandbox Code Playgroud)

视图是这样的:

DROP VIEW IF EXISTS `v_group_participants_with_details`;
CREATE VIEW `v_group_participants_with_details`
AS
SELECT
   gp.id AS gpId,
   gp.role AS gpRole,
   gp.remarks AS gpRemarks
FROM GroupParticipation gp
;
Run Code Online (Sandbox Code Playgroud)

GroupParticipation表的备注列定义为LONGTEXT(我使用的是Mysql 5.x)

现在针对问题:当从查询中注释掉备注字段时,一切都运行正常,但如果我尝试在查询中包含备注字段,则会收到以下错误:

 javax.persistence.PersistenceException: org.hibernate.MappingException: 
 No Dialect mapping for JDBC type: -1   
 at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException
 (AbstractEntityManagerImpl.java:614)   
 at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:76)
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?如何从本机查询中获取LONGTEXT列?

mysql orm hibernate jpa longtext

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

具有JPA 2序列生成的Postgresql中的奇怪id值

该实体在id列上具有以下注释:

@Id
@SequenceGenerator(name = "JOB_MISFIRE_ID_GENERATOR", sequenceName="job_misfire_sequence", allocationSize=10)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "JOB_MISFIRE_ID_GENERATOR")
@Column(unique = true, nullable = false)
private Long id;
Run Code Online (Sandbox Code Playgroud)

在数据库中,我有以下内容:

CREATE SEQUENCE job_misfire_sequence
  INCREMENT 10
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
Run Code Online (Sandbox Code Playgroud)

序列用于获取列的默认值.

ALTER TABLE job_misfires
ALTER COLUMN id SET DEFAULT nextval('job_misfire_sequence');
Run Code Online (Sandbox Code Playgroud)

当我使用nextval('job_misfire_sequence')手动插入数据库时​​,一切正常.当序列的当前值为1时,生成以下id值:

 SELECT nextval('job_misfire_sequence'); --> 1
 SELECT nextval('job_misfire_sequence'); --> 11
 SELECT nextval('job_misfire_sequence'); --> 21
 SELECT nextval('job_misfire_sequence'); --> 31
Run Code Online (Sandbox Code Playgroud)

但是当hibernate在这个表中插入一行时会发生什么呢?它从这个序列得到了下一个值(在这个场景中是41)并将它乘以10并将其用作id值.这意味着插入的行现在具有id值410.

我究竟做错了什么?这种情况会导致冲突,因为hibernate没有使用序列提供的值.如果我已经理解了correclty
,那么注释中的allocationSize = 10和序列中的INCREMENT 10 的组合应该保证hibernate只需要从序列中每十个值请求一个新值.为什么这不会发生?为什么序列中的值乘以10?

我正在使用

  • Postgresql 9.0.3
  • Hibernate 3.5.5
  • Hibernate JPA 2.0 api 1.0.0 final

更新1: …

postgresql hibernate sequence jpa-2.0

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