小编Dan*_*lay的帖子

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

在JDK6u18中JAXB的NamespacePrefixMapper发生了什么

我一直com.sun.xml.bind.marshaller.NamespacePrefixMapper在我的项目中使用,我在JDK 6u17中没有遇到任何问题.现在我刚刚更新到6u18,我看到它已被替换为com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper.但是,如果我导入此类并尝试编译我的类,我会收到错误:

package com.sun.xml.internal.bind.marshaller does not exist
import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;

我可以通过NetBeans代码完成功能访问此包,NetBeans不会突出显示错误代码.

任何帮助,将不胜感激!

java jaxb

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

JDBC字符编码

我在MySQL上运行GlassFish 3和JPA(EclipseLink)上的Java Web应用程序.我面临的问题是,如果我使用该update()方法将实体保存到数据库,则String字段会失去完整性; '?'显示而不是一些字符.

服务器,页面和数据库配置为使用UTF-8.

发布表单数据后,下一页正确显示数据.此外,在NetBeans调试中"看起来"似乎String当前实体的属性也存储了正确的值.Dunno,如果可以信任NetBeans调试; 可能是它正确解码,但它是不正确的.

java mysql jdbc character-encoding

22
推荐指数
3
解决办法
6万
查看次数

JAXB绑定文件将@XmlElement类型设置为String而不是XMLGregorianCalendar

我正在尝试创建一个XmlAdapter接收XMLGregorianCalendar并输出一个XMLGregorianCalendar.目的是简单地在解组数据时从元素中删除时区数据.

它看起来像这样:

public class TimezoneRemoverAdapter extends XmlAdapter<XMLGregorianCalendar, XMLGregorianCalendar> {
    public XMLGregorianCalendar unmarshal(XMLGregorianCalendar xgc) {
        if(xgc == null) {
            return null;
        }
        xgc.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
        return xgc;
    }

    public XMLGregorianCalendar marshal(XMLGregorianCalendar xgc) {
        return xgc;
    }
}
Run Code Online (Sandbox Code Playgroud)

这适用于以下代码:

public class FooElement {
    @XmlElement(name="bar-date")
    @XmlJavaTypeAdapter(TimezoneRemoverAdapter.class)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar barDate;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我使用jaxb-bindings.xml文件生成代码时,上面的代码如下所示:

public class FooElement {
    @XmlElement(name="bar-date", type=java.lang.String.class)
    @XmlJavaTypeAdapter(TimezoneRemoverAdapter.class)
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar barDate;
}
Run Code Online (Sandbox Code Playgroud)

它将类型设置为String,所以我的上述方法不起作用.类型String设置将覆盖XMLGregorianCalendar它应该的类型.我可以手动更改它,但我不必记住每次重新生成jaxb文件时都要更新它.有谁知道是否有手动设置@XmlElement类型或忽略它的选项? …

java xml generics jaxb

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

JAXB以不同的方式将XML封送到OutputStream与StringWriter

我很抱歉,如果这已经得到解答,但我一直在使用的搜索术语(即JAXB @XmlAttribute压缩JAXB XML编组到String不同的结果)没有提出任何建议.

我正在使用JAXB来取消/编组带注释@XmlElement@XmlAttribute注释的对象.我有一个格式化程序类,它提供了两个方法 - 一个包装marshal方法并接受对象编组和一个OutputStream,另一个只接受对象并将XML输出作为String返回.不幸的是,这些方法不能为相同的对象提供相同的输出.封送到文件时,内部标记的简单对象字段@XmlAttribute将打印为:

<element value="VALUE"></element>
Run Code Online (Sandbox Code Playgroud)

当编组到一个字符串时,它们是:

<element value="VALUE"/>
Run Code Online (Sandbox Code Playgroud)

我更喜欢这两种情况的第二种格式,但我很好奇如何控制差异,并且无论如何都会满足于它们.我甚至创建了一个静态编组器,两种方法都使用它来消除不同的实例值.格式代码如下:

/** Marker interface for classes which are listed in jaxb.index */
public interface Marshalable {}
Run Code Online (Sandbox Code Playgroud)
/** Local exception class */
public class XMLMarshalException extends BaseException {}
Run Code Online (Sandbox Code Playgroud)
/** Class which un/marshals objects to XML */
public class XmlFormatter {
    private static Marshaller marshaller = null;
    private static Unmarshaller unmarshaller = null;

    static {
        try {
            JAXBContext context …
Run Code Online (Sandbox Code Playgroud)

java xml java-metro-framework jaxb

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

将INSERT命令转换为UPDATE

我有两个INSERT命令,对我来说没用,因为两组行 - 已经在表中的行和我作为INSERT命令的行 - 不是分离的.两个命令都插入了大量行和大量值.

因此,如果我想执行这些行,我会得到重复的输入错误.

有没有简单的方法将这些命令"转换"成UPDATE

我知道这听起来很愚蠢,因为为什么我做INSERT的命令,如果我想UPDATE.只是为了使它成为一个明确的场景:另一个开发人员给了我脚本:)

谢谢,丹尼尔

编辑 - 问题解决了

首先,我创建了一个表并用我的INSERT命令填充它,然后我使用以下REPLACE命令:

REPLACE
    INTO table_1
SELECT *
    FROM table_2;
Run Code Online (Sandbox Code Playgroud)

最初可以在以下位置找到:如何合并两个MySQL表?

mysql insert-update

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

JDBC MySql连接池实践,以避免耗尽连接池

我在GlassFish上有一个Java-JSF Web应用程序,我想在其中使用连接池.因此,我创建了一个applicationscoped bean,它Connection为其他bean的实例提供服务:

public class DatabaseBean {

    private DataSource myDataSource;

    public DatabaseBean() {
        try {
            Context ctx = new InitialContext();
            ecwinsDataSource = (DataSource) ctx.lookup("jdbc/myDataSource");
        } catch (NamingException ex) {
            ex.printStackTrace();
        }
    }

    public Connection getConnection() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
        Connection connection = myDataSource.getConnection();
        System.out.println("Succesfully connected: " + connection);
        //Sample: Succesfully connected: com.sun.gjc.spi.jdbc40.ConnectionHolder40@7fb213a5
        return connection;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样连接池的填充速度非常快; 在通过"db-related"视图进行一些导航后,应用程序将停止并显示以下内容:

RAR5117:无法从连接池[mysql_testPool]获取/创建连接.原因:正在使用的连接等于max-pool-size和expired max-wait-time.无法分配更多连接.RAR5114:分配连接时出错:[分配连接时出错.原因:正在使用的连接等于max-pool-size和expired max-wait-time.无法分配更多连接.] java.sql.SQLException:分配连接时出错.原因:正在使用的连接等于max-pool-size和expired max-wait-time.无法分配更多连接.

我正在关闭每种方法中的连接和其他资源.应用程序通过独立连接运行一切正常.

我究竟做错了什么?任何提示或建议将不胜感激.

java mysql connection-pooling jdbc glassfish

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

GlassFish v3 - 设置的可移植性

有没有办法简单地将GlassFish v3.0.1服务器设置(即连接池,资源,领域......)复制到另一个GlassFish,所以不需要手动设置它们?这样,设置相同的开发环境会容易得多.

环境:NetBeans 6.9 + GlassFish 3.0.1

谢谢,丹尼尔

java settings glassfish

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

如何在JSF应用程序中引用文件资源

我想从bean动态引用XSD,这怎么可能?我已经将XSD添加到项目中,因此它位于GlassFish域中的某个位置.

java jsf web-applications glassfish

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

JSF中"后退"导航链接的最佳实践

制作"后退"链接的最佳方法是什么,以便应用程序在导航后保持一致.

  • onclick="history.go(-1)".这是非常有害的吗?
  • 在支持bean中使用堆栈,弹出最后一个视图的导航大小写.您可以通过设置导航案例来完成此操作<f:setPropertyActionListener>.
  • 这些都不是......其他解决方案.

任何帮助,将不胜感激!分享你的意见!丹尼尔

java navigation jsf

8
推荐指数
2
解决办法
7870
查看次数