小编got*_*ch4的帖子

Spring和动态包含JSP文件

我一般在Spring 3(和J2EE)中开始构建Web应用程序.看看petclinic的例子,我看到程序员创建了很多JSP片段,比如header,includes,footer,然后使用静态包含将它们拼接在一起.无论如何我想要的是我可能有一个基页,喜欢Base.jsp并且能够包含这样的东西:

<body>
 <jsp:include page="${subpage}"></jsp:include>
</body>
Run Code Online (Sandbox Code Playgroud)

原因是我想要一个主页面,然后能够输入ModelAndView由控制器返回的页面部分在每种情况下显示(附有数据).这样可行,但如果${subpage}找不到,jsp名称错误或丢失,则不会出现错误.我想要更多的错误检查......

这是最好的和推荐的方法吗?如果这对我的想法似乎是一个好主意,那么正确的做法是什么?

java spring jsp spring-mvc

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

插入后直接查询的Elasticsearch奇怪行为

我正在为使用Elasticsearch的应用程序编写一些集成测试,我遇到了一种奇怪的行为.如果我插入一个文档然后我直接查询,我每次都得到不同的结果.我怀疑,虽然插入本身会返回,但索引本身不会同步发生,因此,查询将尝试具有不可预测结果的竞争条件.

如果是这种情况:有没有办法同步,所以当我运行我的查询时,我知道他们已经准备好并且成功了???

更多细节:我使用的是elasticsearch embedded,查询是一个简单的过滤器.唯一奇怪的是我正在使用文档模型的模板文件.

编辑:我甚至尝试在插入后通过ID获取文档,但查询仍然返回随机结果(除非我把线程Sleep等待几秒钟).

elasticsearch

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

Spring OpenSessionInViewInterceptor不起作用

当渲染视图时,我遇到了(in)着名的hibernate和延迟加载问题......正如许多人所说,只有两个解决方案是:

  • 使方法具有事务性(并且这并不总是令人满意)
  • 使用OpenSessionInViewInterceptor.

后者是优选的IMO.无论如何我不确定这个拦截器是否正在触发(事实上我得到了相同的延迟加载异常并且没有任何变化):

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: it.jsoftware.jacciseweb.beans.Listino.prodotti, no session or session was closed
Run Code Online (Sandbox Code Playgroud)

我正在使用简单的基于注释的url映射,所以阅读Spring 3的文档,我在servlet-context.xml中使用它:

<bean id="handlerMapping"
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
        <!-- <property name="order" value="2" /> -->
        <property name="interceptors">
            <list>
                <ref bean="openSessionInViewInterceptorInst" />
            </list>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

哪个应该成功.但它没有用,我得到了例外.我如何确保我的拦截器正在射击?我该如何解决这个问题?

spring hibernate lazy-loading

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

如何避免使用hibernate架构更新

我在日常编程任务中使用Hibernate,我发现它非常好.特别是我喜欢它在开发过程中管理模式更新的方式,这让我免于很多麻烦.

无论如何,他们在文档上写道,它不是在生产环境中推荐的,这是可以理解的.因此,当我在生产服务器上更新应用程序时,可以采用行业标准的方式?我想过创建一个自动安装过程来转储数据库内容(基本上是一个备份),然后从代码调用hibernate架构更新,然后对查询运行一些测试等等.无论如何,是否有自动执行此操作且经过充分测试的工具?

讲出!:)

谢谢.

hibernate

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

为什么我不能在Spring中创建这个bean @Transactional?

我正在编写一个我想用表名配置的简单bean,一个包含一些数据的XML文件,这样如果在应用程序启动时表是空的,那么就会使用该数据进行初始化.我决定使用简单的SQL查询,但我无法从sessionfactory获取会话,因为它说:

Error creating bean with name 'vecchiOrdiniFiller' defined in ServletContext resource [/WEB-INF/spring/servlet-context.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

但这是配置(非常类似于服务):

<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="mySessionFactory" />
</bean>

<tx:annotation-driven />

<bean id="ordiniVecchioSistemaLoader" class="it.jsoftware.jacciseweb.assistenza.common.ExcelXmlDataLoader">
    <property name="xmlFileName" value="WEB-INF/data/daticlientijaccisemarco.xml"></property>
</bean>

<bean id="vecchiOrdiniFiller" class="it.jsoftware.jacciseweb.assistenza.common.BaseTableFiller" init-method="init">
    <property name = "sessionFactory" ref = "mySessionFactory"></property>
    <property name="loader" ref="ordiniVecchioSistemaLoader"></property>    
    <property name="tableCreationString" value="CREATE TABLE `vecchiordini` (  `ID` INT(11) NOT NULL AUTO_INCREMENT, …
Run Code Online (Sandbox Code Playgroud)

sql spring transactions

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

如何获取JTable标头以显示整个列名而不是缩短它们?

我有一个JTable,我填充了一个扩展AbstractTableModel的类.问题是列太短而无法显示列名.我已经关闭了Jtable AutoResizeMode属性,但仍然会发生缩短.我该如何解决这个问题?

java swing jtable text-size jtableheader

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

有谁知道为什么我得到这个IllegalMonitorStateException?

我有一个集成测试,启动getty,然后它启动一个Web应用程序.Web应用程序将跨越一些将运行初始化任务的异步线程.之后就可以进行测试了.现在,因为我要等待其中一个任务完成,我想把静态监视器放在共享类中:

private static Object bootstrapDone = new Object();
Run Code Online (Sandbox Code Playgroud)

使用以下访问方法:

public static void signalEsBoostrapCompleted(){
    synchronized (bootstrapDone){
        bootstrapDone.notifyAll();
    } 
}

public static void waitEsBoostrapCompleted() throws InterruptedException {
    synchronized (bootstrapDone){
        bootstrapDone.wait(20000);
    } 
}
Run Code Online (Sandbox Code Playgroud)

如果我在测试中运行它,我会得到:java.lang.Object.notifyAll(Native Method)中的线程"Thread-11"java.lang.IllegalMonitorStateException异常

从notifyAll所在的行.我不知道为什么会这样.有人可以帮忙吗?

java concurrency

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

在将内容附加到页面后,如何知道DOM已准备就绪?

假设我要动态地将一些内容附加到页面,它涉及一些HTML和一些Javascript(通过添加更多的脚本标记).

我怎么知道一切都准备就绪(就像在页面加载时我会用jQuery $(..))?

或者,在追加操作完成后继续进行是否正常?

jquery dom dom-events

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

如何使用AsynchronousFileChannel高效读取StringBuffer

所以你知道你可以使用AsynchronousFileChannel将整个文件读取到String:

 AsynchronousFileChannel fileChannel = AsynchronousFileChannel.open(filePath, StandardOpenOption.READ);
            long len = fileChannel.size();

            ReadAttachment readAttachment = new ReadAttachment();
            readAttachment.byteBuffer = ByteBuffer.allocate((int) len);
            readAttachment.asynchronousChannel = fileChannel;

            CompletionHandler<Integer, ReadAttachment> completionHandler = new CompletionHandler<Integer, ReadAttachment>() {

                @Override
                public void completed(Integer result, ReadAttachment attachment) {

                    String content = new String(attachment.byteBuffer.array());
                    try {
                        attachment.asynchronousChannel.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    completeCallback.accept(content);
                }

                @Override
                public void failed(Throwable exc, ReadAttachment attachment) {
                    exc.printStackTrace();
                    exceptionError(errorCallback, completeCallback, String.format("error while reading file [%s]: %s", path, exc.getMessage()));
                }
            };

            fileChannel.read(
                    readAttachment.byteBuffer,
                    0,
                    readAttachment, …
Run Code Online (Sandbox Code Playgroud)

java nio utf

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

无法在docker中重新创建Conda环境

我从全新安装的 miniconda3 创建了 conda 环境。

之后我将其导出,这是文件的内容(我唯一的额外安装是 Flask):

name: myenv
channels:
  - defaults
dependencies:
  - ca-certificates=2018.03.07=0
  - certifi=2018.11.29=py37_0
  - click=7.0=py37_0
  - flask=1.0.2=py37_1
  - itsdangerous=1.1.0=py37_0
  - jinja2=2.10=py37_0
  - libcxx=4.0.1=hcfea43d_1
  - libcxxabi=4.0.1=hcfea43d_1
  - libedit=3.1.20170329=hb402a30_2
  - libffi=3.2.1=h475c297_4
  - markupsafe=1.1.0=py37h1de35cc_0
  - ncurses=6.1=h0a44026_1
  - openssl=1.1.1a=h1de35cc_0
  - pip=18.1=py37_0
  - python=3.7.1=haf84260_7
  - readline=7.0=h1de35cc_5
  - setuptools=40.6.2=py37_0
  - sqlite=3.26.0=ha441bb4_0
  - tk=8.6.8=ha441bb4_0
  - werkzeug=0.14.1=py37_0
  - wheel=0.32.3=py37_0
  - xz=5.2.4=h1de35cc_4
  - zlib=1.2.11=h1de35cc_3
prefix: /Users/rossid/miniconda3/envs/phadmin
Run Code Online (Sandbox Code Playgroud)

现在我想要的是在文档图像中重新创建这个环境,所以我创建了这个 Dockefile

FROM continuumio/miniconda3
ADD * myappdir/
RUN conda env create -f /myappdir/environment.yml
Run Code Online (Sandbox Code Playgroud)

但它会失败:

Step 1/5 : FROM continuumio/miniconda3 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x docker miniconda dockerfile

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