小编MWi*_*ner的帖子

连接池或数据源?我应该把它放在哪个JNDI?

在JNDI级别或Webapp级别连接池更有意义吗?例如,我可以简单地在javax.sql.DataSource创建:

<Context antiJARLocking="true">
  <Resource name="jdbc/myDataSource" 
    auth="Container"
    type="javax.sql.DataSource" 
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/myDataSource" user="user" password="password" />
</Context>
Run Code Online (Sandbox Code Playgroud)

然后在Spring中配置池:

<bean id="myDataSource" class="com.mchange.v2.c3p0.DataSources"
  factory-method="pooledDataSource">
  <constructor-arg>
    <jee:jndi-lookup jndi-name="java:comp/env/jdbc/myDataSource" />
  </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

或者,我可以直接在JNDI本身配置池:

<Resource name="jdbc/myDataSource" 
  auth="Container"
  factory="org.apache.naming.factory.BeanFactory"
  type="com.mchange.v2.c3p0.ComboPooledDataSource" 
  driverClassName="com.mysql.jdbc.Driver"
  jdbcUrl="jdbc:mysql://localhost/myDataSource" 
  user="user" password="password"
  minPoolSize="3" 
  maxPoolSize="15" 
  maxIdleTime="5000"
  idleConnectionTestPeriod="300" 
  acquireIncrement="3" />
Run Code Online (Sandbox Code Playgroud)

离开这个春天:

<jee:jndi-lookup id="myDataSource" jndi-name="java:comp/env/jdbc/myDataSource" />
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,myDataSource spring bean都是一个c3p0连接池数据源,但哪一个更好?我认为在JNDI中使用池是最有意义的,但缺点是你必须将c3p0 lib推送到servlet容器级别,这可能会导致与现有servlet冲突,如果它们当前使用不同的版本.但是,将它放在JNDI中意味着您的应用程序根本不必担心池化.你们都在想什么?

java tomcat jndi datasource connection-pooling

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

保留所有历史状态的react-router路由组件

我使用Cordova制作移动应用程序.使用react-router@2.0.0+ ReactCSSTransitionGroup来实现"卡片组"动画.我有一个严格的路由树,没有圆形链接的可能性.

为了提高性能并保存以前路由组件的状态,我想保留它们的整个历史记录只能在pop-state或replace-state上卸载.

怎么做?

reactjs react-router reactcsstransitiongroup

13
推荐指数
1
解决办法
1829
查看次数

如何使用OpenNLP和stringi检测句子边界?

我想打破下string一句话:

library(NLP) # NLP_0.1-7  
string <- as.String("Mr. Brown comes. He says hello. i give him coffee.")
Run Code Online (Sandbox Code Playgroud)

我想展示两种不同的方式.一个来自包装openNLP:

library(openNLP) # openNLP_0.2-5  

sentence_token_annotator <- Maxent_Sent_Token_Annotator(language = "en")  
boundaries_sentences<-annotate(string, sentence_token_annotator)  
string[boundaries_sentences]  

[1] "Mr. Brown comes."   "He says hello."     "i give him coffee."  
Run Code Online (Sandbox Code Playgroud)

第二个来自包装stringi:

library(stringi) # stringi_0.5-5  

stri_split_boundaries( string , opts_brkiter=stri_opts_brkiter('sentence'))

[[1]]  
 [1] "Mr. "                              "Brown comes. "                    
 [3] "He says hello. i give him coffee."
Run Code Online (Sandbox Code Playgroud)

在第二种方式之后,我需要准备句子以删除多余的空格或再次将新的字符串分解成句子.我可以调整stringi函数来提高结果的质量吗?

当它是一个大数据时,openNLP(非常)慢stringi.
有没有办法结合stringi( - >快速)和openNLP …

regex r text-mining opennlp stringi

12
推荐指数
2
解决办法
705
查看次数

为什么git log with --follow和--reverse只返回最后一次提交?

我想从反向运行开始查看文件的所有提交

git log --reverse [file]
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但对于重命名的文件,它只显示在重命名的提交中,所以我在其中添加了--follow.

git log --reverse --follow [file]
Run Code Online (Sandbox Code Playgroud)

但它现在只显示为该文件完成的最后一次提交.

如何将两者结合起来以获得所需的结果.

git

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

为什么Ubuntu 16.04上不存在apache2模块http2?

我想安装htt2_module.按照此链接中列出的步骤重新安装Ubuntu 14.04后,我尝试启用http2_module刚刚运行

sudo a2enmod http2
Run Code Online (Sandbox Code Playgroud)

但我得到:模块http2不存在!

安装的apache版本是:Apache/2.4.7,然后作为一种解决方法我尝试使用此链接添加以下存储库

sudo add-apt-repository ppa:ondrej/apache2
Run Code Online (Sandbox Code Playgroud)

用sudo apt-get update刷新后,再次运行命令安装/启用http2我得到了同样的错误.模块http2不存在.

apache2 ubuntu-14.04 http2

10
推荐指数
2
解决办法
9408
查看次数

JPA条件API将'in'表达式转换为多个'OR'

具有'in'表达式的JPA条件API转换为多个'OR'而不是'in'

例如

我的主要模特

public class Person {
    ...

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "department_id")
    private Department department;

    ...
}
Run Code Online (Sandbox Code Playgroud)

多对一的关系

public class Department {
    @Id
    @Column(name="department_id")
    private Integer departmentId;

    @OneToMany(mappedBy="department")
    private List<Person> person;

    ...
}
Run Code Online (Sandbox Code Playgroud)

在persistence.xml中定义了这两个模型(注意:它没有指定任何db方言)

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">

    <persistence-unit name="primary" transaction-type="JTA">

        <jta-data-source>java:openejb/Resource/jdbc/myDS</jta-data-source>

        <class>com.xyz.Person</class>
        <class>com.xyz.Department</class>
        ...

        <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>

        <properties>
            <property name="openjpa.Log" value="${open.jpa.log}" />
            <property name="openjpa.ConnectionFactoryProperties" value="printParameters=true" />
            <property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
        </properties>
    </persistence-unit>

</persistence>
Run Code Online (Sandbox Code Playgroud)

以下是使用Criteria API构建查询的代码:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Person> criteriaQuery = cb.createQuery(Person.class);
Root<Person> personRoot = criteriaQuery.from(Person.class); …
Run Code Online (Sandbox Code Playgroud)

java jpa openjpa

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

为什么Hibernate有时会加载不正确的子类的实例?

我们有一个奇怪的问题,我们无法解释hibernate.

我们有什么:

  1. 一个抽象类和它的两个子类.我们称它们为A,SubA1,SubA2
  2. 我们有另一个抽象类和一些子类.让我们调用B,SubB1,SubB2.
  3. SubB1和A之间存在多对一关系.
  4. 类A和B的hibernate映射如下所示:

    <hibernate-mapping>
    
      <class name="A" table="A" lazy="false">
    
        <id name="id" column="ID" type="java.lang.Integer">
          <generator class="org.hibernate.id.enhanced.TableGenerator">
            <param name="segment_value">a</param>
          </generator>
        </id>
    
        <version name="olVersion" column="VERSION" type="integer" unsaved-value="negative" />
    
        <joined-subclass name="SubA1" table="SUB_A1" lazy="false">
          <key column="ID_A" foreign-key="FK_SUB_A1_A"/>
          <property name="p1" column="p1" length="255" unique="true"/>
          <property name="p2" column="p2" length="255" not-null="true" />
        </joined-subclass>
    
        <joined-subclass name="SubA2" table="SUB_A2" lazy="false">
          <key column="ID_A" foreign-key="FK_SUB_A2_A"/>
          <property name="p3" column="p3" length="255" not-null="true" unique="true" />
          <property name="p4" column="p4" length="4000" />
        </joined-subclass>
    
      </class>
    
    </hibernate-mapping>
    
    Run Code Online (Sandbox Code Playgroud)

<hibernate-mapping>

  <class name="B" table="B" lazy="false">

    <cache usage="read-write"/>

    <id name="id" column="ID" type="java.lang.Integer"> …
Run Code Online (Sandbox Code Playgroud)

java oracle hibernate

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

如何在LibSVM中使用'svm_toy'Applet示例?

我正在使用LIBSVM.在下载包中是一个svm_toy.java文件.我无法弄清楚它是如何工作的.这是源代码:

import libsvm.*;
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.io.*;

/**
 * SVM package 
 * @author unknown
 *
 */
public class svm_toy extends Applet {

    static final String DEFAULT_PARAM="-t 2 -c 100";
    int XLEN;
    int YLEN;

    // off-screen buffer

    Image buffer;
    Graphics buffer_gc;

    // pre-allocated colors

    final static Color colors[] =
    {
      new Color(0,0,0),
      new Color(0,120,120),
      new Color(120,120,0),
      new Color(120,0,120),
      new Color(0,200,200),
      new Color(200,200,0),
      new Color(200,0,200)
    };

    class point {
        point(double x, double y, byte …
Run Code Online (Sandbox Code Playgroud)

java applet svm libsvm

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

如何为Windows 10 HWA捆绑包创建安装程序?

我使用MS Visual Studio 2015 构建了一个Windows 10 托管Web应用程序(HWA).现在,我已经研究过是否有办法为它创建一个独立的安装程序 - 它将生成的.appx和相关的文件捆绑成一键可执行文件.遗憾的是,到目前为止,我只是通过使用提供的PowerShell脚本成功地侧载HWA包.

在这种情况下,我查看了NSIS(Nullsoft Scriptable Install System)来为这个HWA创建一个安装程序.到目前为止,根据最新的更改日志,似乎只有"初步的Windows 10支持" (参见版本F.2 3.0 Beta 2).

所以我的问题是:

  1. 如何在不需要调用PowerShell安装例程的情况下创建独立安装程序?
  2. " Windows 10初步支持 "对appx应用程序意味着什么?

注意:

我对基于非Windows-Store的方法感兴趣,因为应用程序只能通过本地安装分发给一组经过验证的客户.

编辑-1:

我对其他(非基于NSIS的)安装程序创建方法持开放态度.

installer nsis win-universal-app windows-10 visual-studio-2015

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

TomEE 7上bean验证的自定义异常映射?

上下文

我们使用javax.ws.rs.ext.ExceptionMapper<Exception>注释@javax.ws.rs.ext.Provider来处理所有异常.在内部,这ExceptionMapper可以区分不同类型的异常,以确定向客户端显示哪些信息.

在这种情况下javax.validation.ConstraintViolationException,我们返回有关哪个字段无效的其他信息以及原因.

问题

我们刚刚切换TomEE 1.7.2 JAX-RSTomEE 7.0.0-SNAPSHOT webprofile.

随着TomEE 1.7.2 JAX-RS我们使用的openejb.jaxrs.providers.auto=true系统属性,我们ExceptionMapper已自动发现和使用.

随着TomEE 7.0.0-SNAPSHOT webprofile物业不再需要从汽车发现中受益.

然而,org.apache.cxf.jaxrs.validation.ValidationExceptionMapper也发现,现在作为首选ExceptionMapperjavax.validation.ConstraintViolationException.我们自己ExceptionMapper没有运行,因此客户端无法获得有关验证过程中出错的信息.

我们自己ExceptionMapper<Exception>仍处理所有其他异常.

我已经尝试过了什么

"复制"专业 ExceptionMapper

我把自己放在我的javax.ws.rs.ext.ExceptionMapper<javax.validation.ConstraintViolationException>资源旁边,希望它优先于CXF.

仍然org.apache.cxf.jaxrs.validation.ValidationExceptionMapper优先.

更新:事实证明这确实可以解决问题.我不知道为什么我的初步测试不起作用.

禁用ValidationExceptionMapper通道system.properties

在我注意到的更改日志TomEE 7.0.0-SNAPSHOT

TOMEE-1336支持自动发现的提供程序的classname.activated = true/false

看看相应的变更集我希望我可以org.apache.cxf.jaxrs.validation.ValidationExceptionMapper通过向我们添加org.apache.cxf.jaxrs.validation.ValidationExceptionMapper.activated = false来禁用它system.properties. …

java cxf bean-validation tomee tomee-7

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