小编Jay*_*Mie的帖子

有效地删除UTF字节顺序标记

我正在寻找以下问题的有效解决方案:

org.xml.sax.SAXParseException:prolog中不允许使用内容

问题是在解组文件之前(使用jaxb)跳过(或删除)前3个字节(如果存在).

我可以通过检查前三个字节然后将其后的所有内容写入新文件并使用新文件来使其工作,但这看起来非常低效.

如果存在BOM,我已经尝试将文件指针移动超过3个字节(并验证了指针位置ofc.),但是当我将输入流传递给jaxb时,它仍会抛出相同的异常; 我的直觉是文件指针正在被重置.

有没有人对此有任何想法?

谢谢

java xml byte-order-mark jaxb utf-8

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

Spring将数据源bean注入或自动装配到类

这可能是一个非常新手的问题,但我已经搜索过,或者我的理解中存在很大差距,或者我做错了一些我无法弄清楚的事情.

在我的上下文文件中,这是一个摘录

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${datasource.driverClassName}" />
    <property name="url" value="${datasource.url}" />
    <property name="username" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
</bean>

<bean id="myBeanOne" class="a.b.c.myBeanOne">
         <property name="dataSource" ref="dataSource" />
</bean>
Run Code Online (Sandbox Code Playgroud)

现在在myBeanOne我有:

private DataSource dataSource;

private JdbcTemplate jdbcTemplate;

@Autowired
public void setDataSource (DataSource dataSource) {
    this.jdbcTemplate = new JdbcTemplate(dataSource);
}

public void myMethod() {
    String sql = "'My generic SQL update query'";
    try {
        this.jdbcTemplate.update(sql);
    } catch (org.springframework.dao.EmptyResultDataAccessException ex) {
    }
    System.exit(0);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在调用setDataSource的行上执行此操作时,我收到此错误:

ERROR org.springframework.integration.handler.LoggingHandler 
    org.springframework.integration.MessageHandlingException: 
       java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

在线上: this.jdbcTemplate.update(sql);

我尝试了十种不同的配置来实现这一点,但我似乎无法做到这一点.非常感谢您的帮助,谢谢. …

java spring jdbc autowired

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

标签 统计

java ×2

autowired ×1

byte-order-mark ×1

jaxb ×1

jdbc ×1

spring ×1

utf-8 ×1

xml ×1