小编rad*_*dai的帖子

有没有为Java EE容器定义JDBC数据源的标准方法?

我知道对于JBoss,您需要在相应实例的/ deploy子目录中使用[name] -ds.xml文件.我没有任何其他Java EE容器的经验,但我试图尽可能地坚持标准.有没有一种标准的方法来定义JDBC数据源并进行部署?如果可能的话,我想将我的数据源包含在*.ear文件中(例如,用于演示目的的嵌入式内存HSQLDB数据源)?

如果没有标准方式,其他容器至少会接受jboss方式吗?(/deploy/*-ds.xml)

java jdbc hsqldb java-ee

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

在HSQLDB 2.0.0-rc8中选择下一个序列值的"正确"方法

假设我有一个名为TEST_SEQ的序列,那么选择下一个值的正确方法是什么?这不起作用:

select next value for TEST_SEQ
Run Code Online (Sandbox Code Playgroud)

可能是因为它期望一个"FROM"条款.在hibernate中查看HSQLDialect.getSequenceNextValString()我看到了这个:

"select next value for " + sequenceName + " from dual_" + sequenceName
Run Code Online (Sandbox Code Playgroud)

在我的情况下会导致类似于:

select next value for TEST_SEQ from dual_TEST_SEQ
Run Code Online (Sandbox Code Playgroud)

哪个不适用于2.0.0-rc8(我只假设它适用于2.0之前的版本 - 尚未验证)我遇到了一个解决方案,涉及创建一个简单的表,其中一行称为DUAL,在这种情况下,这将工作(甲骨文风格):

select next value for TEST_SEQ from DUAL
Run Code Online (Sandbox Code Playgroud)

但是hsqldb没有开箱即用这个表,我不知道如何在"首次启动"时生成这样的表来进行休眠.

我认为必须有一种方法来获得开箱即用的序列的下一个值,我只是错过它.有任何想法吗 ?

java sql orm hibernate hsqldb

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

是否可以从另一个调用一个jax-rs方法?

假设我有一些jax-rs资源类:

@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ResourceA {
   @GET
   public Something get(@Context UriInfo uriInfo) {
      if (...) {
         //how to get to ResourceB ?
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我想有条件地将调用重定向到其他一些jax-rs资源:

public class ResourceB {
   @GET
   @Path("{identifier}")
   public Other get(@PathParam("identifier")String someArg) {
   }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?请注意,我不希望这对客户端可见(因此没有http重定向)和通常我想重定向的资源方法不共享相同的签名(他们可能有路径参数等,如我给出的示例).

我在apache tomcat下运行jersey 2.6(它是一个spring应用程序,如果有任何帮助)

编辑 - 我正在寻找一个jax-rs相当于servlet前进.我不想做额外的http跳或担心我自己实例化资源类

java jax-rs jersey

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

将JPA实体与特定于Hibernate的调整分开

我有以下"root"实体(特定于hibernate的部分注释掉):

@Entity
//@GenericGenerator(name="system-uuid",strategy="org.hibernate.id.UUIDGenerator")
public class Node extends PersistentEntity {
    private UUID id;
    private String name;
    private String displayName;

    @Id
    @GeneratedValue
    //@GeneratedValue(generator="system-uuid") //instead of above line
    //@Type(type = "pg-uuid")
    public UUID getId() { return id; }

    public String getName() { return name; }

    public String getDisplayName() { return displayName; }

    //stuff omitted
}
Run Code Online (Sandbox Code Playgroud)

这是使用PostgreSQL 9为数据库(使用最新的JDBC4驱动程序)部署在JBoss AS 6(hibernate 3.6)上的持久化上下文的一部分.PostgreSQL有自己的uuid列类型,需要一些特定于hibernate的映射才能正确使用(在上面的代码中注释掉) - 否则hibernate将尝试将UUID字段映射到BINARY,然后PostgreSQL方言不支持BINARY(显然是因为postgre有两种方式存储二进制和hibernate devs不喜欢它)并且整个事情爆炸了.

取消注释上面的行产生工作代码,但它迫使我对hibernate有一个编译时依赖 - 我宁愿避免.

尝试将hbm.xml文件添加到混合中并从persistence.xml引用它不会合并文件和注释中的数据,而只是忽略注释:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="package">
    <class name="Node">
        <id …
Run Code Online (Sandbox Code Playgroud)

java persistence hibernate jpa jpa-2.0

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

是否可以"扩展"子模块中的配置文件?

说我有一个父pom A,由os激活配置文件win32和win64:

<profile>
    <id>windows32</id>
    <activation>
        <os>
            <family>windows</family>
            <arch>x86</arch>
        </os>
    </activation>
    <properties>
        <envClassifier>win-x32</envClassifier>
    </properties>
</profile>
<profile>
    <id>windows64</id>
    <activation>
        <os>
            <family>windows</family>
            <arch>amd64</arch>
        </os>
    </activation>
    <properties>
        <envClassifier>win-x64</envClassifier>
    </properties>
</profile>
Run Code Online (Sandbox Code Playgroud)

这些配置文件定义了env.像$ {envClassifier}等变量说父模块有一个子模块B,它想在win64上定义一些额外的东西IN ADDITION:

<profile>
    <id>windows64</id>
    <properties>
        <jreName>jre6u27.zip</jreName>
    </properties>
</profile>
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式从父母扩展win64配置文件,或者我注定要复制并粘贴它的激活部分和一切?

java maven

11
推荐指数
2
解决办法
4869
查看次数

用于操作*.properties文件的java库

我计划在*.properties文件中编写一个用于注释/取消注释/编辑属性的实用程序.我知道我可以使用Properties类读取/修改/编写那些,但我正在寻找一个库,它可以让我访问注释行等内容,在写回等时保留格式和行顺序等.

这样的图书馆存在吗?

java

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

用于java 7的简单代码指标独立maven插件

我正在寻找一种方法来为maven多模块java 7构建生成简单的度量报告(更具体地说,代码行).

  • 我已经尝试了maven javancss插件,但它在java 7语法上窒息而且似乎被抛弃了.
  • 我知道maven 声纳插件,但我不想安装(和维护)声纳安装,我只是喜欢一个简单的静态HTML.
  • 我已经看过cloc代码分析器,但无法找到将它们集成到maven构建中的任何方法

所以我的问题是 - 我该怎么做?

java code-analysis maven-3 maven

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

moderm JVM可以不同地优化同一类的不同实例吗?

假设我有2个相同类的实例,但它们的行为不同(遵循不同的代码路径)基于构造时设置的最终布尔字段.像这样的东西:

public class Foo {
   private final boolean flag;

   public Foo(boolean flagValue) {
      this.flag = flagValue;
   }

   public void f() {
      if (flag) {
         doSomething();
      } else {
         doSomethingElse();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

理论上,2个Foo具有不同值的实例flag可以由2个不同的程序集支持,从而消除了if的成本(对于人为的例子,这是我能想到的最简单的例子).

所以我的问题是 - 任何JVM实际上都这样做吗?或者是一个总是由单个程序集支持的单个类?

java optimization jvm bytecode jvm-hotspot

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

灰熊管泄漏 - 我做错了什么?

我写了以下测试代码:

@Test
public void testLeakWithGrizzly() throws Throwable {
    ExecutorService executor = Executors.newFixedThreadPool(N_THREADS);
    Set<Future<Void>> futures = new HashSet<>();
    InetSocketAddress inetSocketAddress = new InetSocketAddress(localhostAddress, 111);
    for (int i = 0; i < N_THREADS; i++) {
        Future<Void> future = executor.submit(new GrizzlyConnectTask(inetSocketAddress, requests, bindFailures, successfulOpens, failedOpens, successfulCloses, failedCloses));
        futures.add(future);
    }
    for (Future<Void> future : futures) {
        future.get(); //block
    }
    Thread.sleep(1000); //let everything calm down
    reporter.report();
    throw causeOfDeath;
}    
private static class GrizzlyConnectTask implements Callable<Void> {
    private final InetSocketAddress address;
    private final Meter requests;
    private …
Run Code Online (Sandbox Code Playgroud)

java grizzly

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

可疑整数除法的检查样式规则?

是否有一个 checkstyle 规则可以捕获这样的内容:

double result = someInt / someOtherInt;
Run Code Online (Sandbox Code Playgroud)

result 是 double (所以显然需要分数)但右侧会进行整数除法(向下取整)。

这样的东西存在吗?

java checkstyle integer-division spotbugs

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