小编Fag*_*ack的帖子

我为什么要指定@Column(nullable = false)?

我有一个注释的实体@Entity.
如果我负责创建CREATE TABLE脚本,为什么我应该指定@Column( nullable = false )何时可以使用NOT NULL关键字在数据库中创建列?是否有任何示例显示在字段中使用此属性的好处?

java jpa nullable jpa-2.0

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

在计算长度> 1的字符时,如何比较字符串的每个字符?

我有一个可能包含任何unicode字符的变量字符串.其中一个unicode字符是汉.

The thing is that this "han" character has "".length() == 2但是作为单个字符写在字符串中.

考虑下面的代码,我如何迭代所有字符并比较每个字符,同时考虑它可能包含一个长度大于1的字符的事实?

for ( int i = 0; i < string.length(); i++ ) {
    char character = string.charAt( i );
    if ( character == '' ) {
        // Fail, it interprets as 2 chars =/
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:
这个问题不重复.这将询问如何迭代字符串的每个字符,同时考虑包含的.length() > 1字符(字符不是作为char类型而是作为书写符号的表示).这个问题不需要先前知道如何迭代Java String的unicode代码点,尽管提到的答案也可能是正确的.

java string unicode utf-16 character-encoding

16
推荐指数
2
解决办法
2521
查看次数

使用JPA 2在权限模型中存储用于按位比较的整数

我正在使用权限模型,我有一张桌子user_permissions.此表将包含一个或多个具有特定bigint的列.我将使用每个十进制数的位来与某些权限规则进行比较(位位置将是权限规则,值将是规则的条件activenot active).

这种方法的问题在于,当使用诸如bigint之类的数字时,我的位数有限.

在这种情况下,我可以在跨数据库环境中使用的最佳列类型是什么?

这些标签代表了我的目标,因此我们赞赏与这些技术相关的任何其他解决方案.

我当时想用@Lob注释来存储大数据,这是最佳做法吗?

更新:user_permission表以1:1的关系扩展用户,并具有bigint字段,如bin_create,bin_read,bin_update,bin_delete,它将二进制数据保存为十进制数字.

澄清问题:我正在考虑使用按位运算符比较权限.因此,假设我有一个权限值为10(1010)的用户,以及需要13(1101)的操作.所以10&13 == 8(1000) - >用户有一个权限匹配操作所需的权限,所以我可以允许或拒绝(由应用程序规则定义哪个).但是使用这种方法我可以使用有限数量的位(假设我增加了要考虑的权限,因此数字也会增加).最大bigint值是~9223372036854775807,这给了我二进制111111111111111111111111111111111111111111111111111111111111111,每个字段有~60个块和许可可能性.那么在这种情况下我可以使用哪种最好的列类型在跨数据库环境中工作以存储大量的二进制块并且可以在java中使用按位运算符?

sql hibernate jpa java-ee jpa-2.0

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

将EJB注入动态映射的servlet

我有一个过滤器,我在dinamically映射servlet类:

    @Override
    public void init( FilterConfig filterConfig ) throws ServletException {
        servletContext = filterConfig.getServletContext();

        File directory = getConventionDirectory();
        FileSystemInspector fileInspector = new FileSystemInspector();
        Set<ActionInfoData> actions = fileInspector.getActions( directory );

        for ( ActionInfoData action : actions ) {
            servletContext
                .addServlet( action.getServletName(), action.getClassName() )
                .addMapping( action.getServletMapping() );
        }

    }
Run Code Online (Sandbox Code Playgroud)

然后,当我访问给定的映射时,不会注入EJB.

    @EJB
    private I18nManager i18nManager;

    @Override
    protected void doGet( HttpServletRequest request, HttpServletResponse response )
    throws ServletException, IOException {
        I18nManager i18n = i18nManager; //null
    }
Run Code Online (Sandbox Code Playgroud)

如果我在web.xml中手动创建映射,则给定的EJB正在该servlet中工作.它让我想知道我在运行时注册servlet的事实是否将这些servlet视为托管.

如果是这种情况,将EJB注入我的servlet的正确方法是什么,而不改变它们通过过滤器进行dinamically注册的方式?

通过JNDI是注入我的EJB的唯一方法吗?

编辑1:我试图ServletContextListener …

java jboss servlets ejb java-ee

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

Multipart配置无法在奇怪的情况下为动态添加的servlet工作

JSP:

<!DOCTYPE html>
<form action="/{insert your context here}/p/hello" method="post" enctype="multipart/form-data">
  <input type="file" name="data">
  <button>Go</button>
</form>
Run Code Online (Sandbox Code Playgroud)

Servlet的:

@WebServlet
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1;
    @Override
    protected void doPost( HttpServletRequest request, HttpServletResponse response )
    throws IOException, ServletException {
        if ( request.getPart( "data" ) != null ) {
            response.getWriter().print( "It worked\n\n" );
        } else {
            response.getWriter().print( "IT IS NOT WORKING!\n\n" );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

过滤

@WebFilter( filterName = "hello" )
public class HelloFilter implements Filter { …
Run Code Online (Sandbox Code Playgroud)

java jboss jsp servlets java-ee

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

为什么服务器启动"无法定义类"WARN?

当我在JBoss中执行liquibase时,我得到以下WARN,但所有内容都正确更新:

12:32:01,499 WARN  [org.jboss.modules] (ServerService Thread Pool -- 49) Failed to define class liquibase.sdk.watch.WatchCommand$DynamicContentHandler in Module "deployment.WebStories.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link liquibase/sdk/watch/WatchCommand$DynamicContentHandler (Module "deployment.WebStories.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:407) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:254) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.Module.loadModuleClass(Module.java:518) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.2.0.CR1]
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.2.0.CR1]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadClass(DefaultPackageScanClassResolver.java:358) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.loadImplementationsInJar(DefaultPackageScanClassResolver.java:406) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findAllClasses(DefaultPackageScanClassResolver.java:226) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:116) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.DefaultPackageScanClassResolver.findImplementations(DefaultPackageScanClassResolver.java:84) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClassesImpl(ServiceLocator.java:202) [liquibase-core-3.2.2.jar:]
    at liquibase.servicelocator.ServiceLocator.findClasses(ServiceLocator.java:177) [liquibase-core-3.2.2.jar:] …
Run Code Online (Sandbox Code Playgroud)

java logging jboss liquibase

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

解决焦点按钮轮廓出现在左浮动同级按钮后面的问题

给定这个 HTML:

<div>
    <button>Test1</button>
    <button>Test2</button>
</div>
Run Code Online (Sandbox Code Playgroud)

还有这个样式表:

button {
    border: 1px solid #EEE;
    float: left;
}

button:focus {
    outline: thin dotted;
}
Run Code Online (Sandbox Code Playgroud)

SSCCE: http: //jsfiddle.net/DKpGA/

在下面的 jsfiddle 中,如果您关注第一个元素,则轮廓将保留在下一个元素后面(单击并“拖动”第一个按钮以仅显示带边框的轮廓)。

它发生在 Firefox (edge) 和 IE10 中。

我尝试使用 z-index 来控制两个元素的 z 位置,但没有成功。我可能错过了一些东西。
Opera 可以优雅地处理它,但 Firefox 和 IE10 拒绝这样做......

  1. 对于 FF 和 IE10,如何使轮廓出现在相关元素的前面而不是下一个元素的后面?
  2. 规范中是否提到了有关此行为的内容,或者这是供应商特定的?

显示 FF 中不良行为的屏幕截图: 不良行为

html css firefox cross-browser web-frontend

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

@Column长度大于255个字符的实体

由于默认值为255,我如何指定"无限"长度来保存诸如大文本之类的信息?它不应该是特定于供应商的解决方案,例如"columnDefinition"属性.

java sql postgresql hibernate java-ee

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

为什么这个简单的 JAX RS 示例不起作用?

我正在尝试使用一个简单的 JAX RS 示例,但我没有这样做。

网页.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>PLAYGROUND</display-name>
  <servlet-mapping>
    <servlet-name>playground.Rest</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

REST.java

package playground;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;

public class Rest extends Application {
    @GET
    @Path("hello")
    public String helloworld() {
        return "Hello World!";
    }
}
Run Code Online (Sandbox Code Playgroud)

http://localhost/{warcontext}/api/hello使用浏览器 (GET)访问给我 404 错误状态

这可能是非常愚蠢的事情,但我无法弄清楚。

使用:JBoss EAP 6.1.0 (Java EE 6)

java rest jboss jax-rs jakarta-ee

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

列出打包战争中的文件

我有一个.ear,一个.jar和一个.war包。我正在通过检查文件系统和注册映射动态地读取我的 servlet 类。

问题是它适用于开发,我能够读取目录并且正确的文件名确实能够创建映射。问题是如果我打包我的耳朵是不行的:

  • 使用新的 File( ... ).isDirectory()
    • 要检查我是否在目录中,对于有效的目录路径,始终返回 false。
  • 使用新的 File( ... ).listFiles()
    • 为了能够列出目录中的文件,总是返回null一个有效的目录路径。

我已经通过检测不以扩展名结尾的结束路径解决了目录检查问题(出于我的目的,这样的验证就足够了),但我仍然无法列出给定路径中的文件。

鉴于这种情况,我有一个问题:

如何在运行时从包中列出文件名.war

当前代码:

private void addAllFiles( File dir, ArrayList<ConventionPath> list ) {
    for ( File file : dir.listFiles() ) { // dir.listFiles() comes null here =/
        String absolutePath = file.getAbsolutePath();

        boolean isActionDir = ConventionFiles.isActionDir( absolutePath, fileSeparator );
        boolean isActionFile = ConventionFiles.isActionFile( absolutePath );

        if ( isActionDir ) {
            addAllFiles( file, list );
        }

        if …
Run Code Online (Sandbox Code Playgroud)

java file-io jboss war jakarta-ee

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