小编jwa*_*ell的帖子

使用jaxb(unmarshal)将xml转换为java对象

我有以下XML,我需要将其转换为java对象.

<tests>
    <test-data> 
         <title>BookTitle</title> 
         <book>BookName</book> 
         <count>64018</count> 
         <test-data> 
            <title>Book title1</title> 
            <book>Book Name1</book> 
            <count>5</count> 
         </test-data> 
         <test-data> 
            <title>Book title2</title> 
            <book>Book Name3</book> 
            <count>5</count> 
         </test-data> 
         <test-data> 
            <title>Book title3</title> 
            <book>Book Name3</book> 
            <count>4</count> 
         </test-data> 
    </test-data>
</tests>
Run Code Online (Sandbox Code Playgroud)

当我使用JAXB转换它时,我不确定我的pojo是什么.

根据我的理解,我创建了以下POJO:

public class Tests {

    TestData testData;

    public TestData getTestData() {
        return testData;
    }

    public void setTestData(TestData testData) {
        this.testData = testData;
    }
}

public class TestData {
    String title;
    String book;
    String count;

    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    } …
Run Code Online (Sandbox Code Playgroud)

java jaxb

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

区分大小写的文件系统上的不区分大小写的File.equals

我有一个String形式的文件路径.在Java中,我需要确定文件系统上是否存在该文件(并且我们的代码需要在Windows,Linux和OS X上运行时是跨平台的).

问题是文件路径和文件本身的情况可能不匹配,即使它们确实代表相同的文件(可能这是因为它们起源于Windows并且没有注意到差异).

例如,我的文件路径为"ABC.txt".文件系统上存在名为"abc.txt"的文件.以下代码将在Windows 上返回true但在Linux 上为false:

new File("ABC.txt").exists();
Run Code Online (Sandbox Code Playgroud)

确定文件是否存在以及是否存在返回文件系统上文件句柄的最佳方法是什么?

java filesystems cross-platform file case-sensitive

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

Hibernate:如何维护插入顺序

我有一个实体列表,其中创建顺序很重要,但它们不包含用于排序的时间戳。实体在创建时被添加到列表的末尾,因此它们将在列表本身中正确排序。

使用 Hibernate 持久化列表后,实体按照它们的创建顺序出现在数据库表中。然而,当使用新的 Hibernate 会话检索列表时,列表现在处于插入/创建的相反顺序。

这是预期的行为吗?有没有办法按照列表中出现的相同顺序检索列表?

主键是一个 UUID,实体列表应该始终在相同的 IP 地址和 JVM 上创建。这意味着按 UUID 排序是可能的,但我宁愿不做假设。

另一种可能性是,如果保证列表总是以相反的顺序出现,我总是可以向后处理它。

java orm hibernate

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

如何从XML示例生成XSLT

我正在寻找一种半自动 XSLT生成工具.

给定2个XML文件,来源:

<elm>XXX</elm>
Run Code Online (Sandbox Code Playgroud)

和目标:

<exx>XXX</exx>
Run Code Online (Sandbox Code Playgroud)

该工具应该生成XSLT文件,该文件从源生成目标.查看内容,它应该识别级别,位置,元素名称等的变化. 没有通用的解决方案,但我只需要简单的转换.

可能的实施:

1. scan the source, map XML data "XXX" to element path "elm"
2. scan the target, map XML data "XXX" to element path "exx"
3. output target XML structure, output XSLT mapping of "XXX", "elm" -> "exx"
Run Code Online (Sandbox Code Playgroud)

如果发生冲突,则需要手动干预.冲突可能是"XXX",而不是源头上的"XXX".

如果该工具也可以识别XSD/DTD,那将是很好的,例如进行手动"字段"映射.

编辑:澄清.

xml xslt xsd

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

Java程序应如何处理外部邮件服务器故障?

我有一个不断运行的Java程序,需要在遇到问题时发送电子邮件.但是,它使用的邮件服务器可能在尝试发送电子邮件时关闭.

确保在邮件服务器恢复时发送电子邮件的最佳方法是什么?

java email smtp jakarta-mail

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

格式化一段时间

在Java中,我有一个长整数,表示一段时间(以毫秒为单位).时间段可以是从几秒到几周的任何时间段.我想将此时间段输出为具有适当单位的字符串.

例如,3,000应输出为"3秒",61,200,000应输出为"17小时",1,814,400,000应输出为"3周".

理想情况下,我也可以微调子单元的格式,例如62,580,000可能输出为"17小时23分钟".

是否有任何现有的Java类可以处理这个问题?

java formatting time

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

如何使用Ant将具有不同名称的jar发布到Ivy

我刚刚开始使用Ivy,我真的很挣扎,因为我发现Apache网站上的文档和教程非常混乱,与我想要如何使用它无关.

我想使用Ant将一些jar文件发布到本地Ivy存储库.Ant脚本创建了四个jar文件:

  • SED-WS-client.jar中
  • SED-WS-客户src.jar
  • SED-enums.jar
  • SED-枚举-src.jar

这些jar应该最终存放在Ivy存储库中的两个不同目录中(例如sed-ws-client目录和sed-enums目录).存储库当前在相应的目录中包含这些jar的0.0.1和0.0.2版本,以及相应的ivy- [version] .xml文件(这是手动完成的).

我在弄清楚如何构建"发布"Ant目标和项目ivy.xml文件时遇到了很多麻烦.我被迫在模块的info标签中放置一个模块名称ivy.xml,但是这意味着我只能将jar发布到Ivy存储库中的一个目录中?

我尝试了各种各样的东西,但Ant构建总是失败.我只想简单解释一下我需要采取哪些步骤才能使其正常工作.如有必要,可以更改存储库结构.

这是我到目前为止所拥有的:

ivy.xml 文件:

<ivy-module version="1.0">
<info organisation="myorg" module="SED" revision="1.0" status="dev"></info>

<publications>
    <!-- ws-client -->
    <artifact name="sed-ws-client"/>
    <artifact name="sed-ws-client" type="src"/>

    <!-- generated -->
    <artifact name="sed-enums"/>
    <artifact name="sed-enums" type="src"/>

</publications>

</ivy-module>
Run Code Online (Sandbox Code Playgroud)

蚂蚁目标:

<target name="ivy-publish" description="Produce the ivy.xml file for the built jars">
    <ivy:settings file="d:/temp/ivy/ivysettings.xml" />
    <ivy:retrieve />
    <ivy:publish organisation="myorg" resolver="default" pubrevision="0.0.2" update="true">
        <artifacts pattern="${DEPLOY_DIR}/${sed.ws.client.jar}-[type].[ext]" />
        <artifacts pattern="${DEPLOY_DIR}/${sed.enums.jar}-[type].[ext]" />
    </ivy:publish>
</target>
Run Code Online (Sandbox Code Playgroud)

ant ivy

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

在JSF中限制文件上载大小

我正在使用Tomahawk inputFileUpload组件来允许用户将文件上传到服务器.我通过在上传文件后检查文件大小来实现"软"文件大小限制,如果文件太大则显示错误.但是我还想要一个更大的"硬"​​限制,一旦超过限制,上传会立即停止.例如,如果硬限制为500MB并且用户尝试上载2GB文件,则一旦上载500MB并且显示错误,上载将立即停止.

我曾希望使用MyFaces ExtensionsFilter并设置uploadMaxFileSize可以解决问题,但是在抛出SizeLimitExceededException之前,文件已完全上传.

是否有可能做到这一点?理想情况下,我仍然可以使用战斧,但任何其他解决方案都会很好.

jsf file-upload tomahawk

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