小编CAP*_*OCK的帖子

在Docker容器中调试Tomcat

我有一个在Vagrant中运行的CoreOS.Vagrant专用网IP为192.168.111.1.CoreOS内部是一个Tomcat 8.0.32的docker容器.几乎一切正常(应用程序部署等)只是调试没有.Tomcat映射到8080端口,JPDA端口应为8000.

事实

Tomcat JPDA配置有:

JDPA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
Run Code Online (Sandbox Code Playgroud)

它从catalina.sh jpda start命令开始.运行它时控制台中的输出docker-compose是:

tomcat | Listening for transport dt_socket at address: 8000
Run Code Online (Sandbox Code Playgroud)

从容器信息我假设端口按它们应该映射:

CONTAINER ID        IMAGE       COMMAND      CREATED             STATUS              PORTS                                            NAMES
dcae1e0148f8        tomcat      "/run.sh"    8 minutes ago       Up 8 minutes        0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp   tomcat
Run Code Online (Sandbox Code Playgroud)

我的docker镜像基于这个Dockerfile.

问题

尝试运行远程调试配置时(下面的屏幕截图)我收到错误Error running Debug: Unable to open debugger port (192.168.111.1:8000): java.net.ConnectException "Connection refused".我已经尝试过改变各种配置但没有运气的一切.我错过了什么吗?

在此输入图像描述

debugging tomcat intellij-idea jpda

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

Hibernate默认架构和表注释

我正在使用Spring Boot 1.3.5Hibernate 5.1.告诉Hibernate调用要使用的模式的属性是

spring.jpa.properties.hibernate.default_schema
Run Code Online (Sandbox Code Playgroud)

然而,值(模式名称,让我们说开发),不知何故,在创建表时,它不会被拾取spring.jpa.hibernate.ddl-auto.让它工作的唯一方法(至少对我的情况有效)是每个实体类都有定义的模式名称

 @Table(name = "some_table", schema = "development")
Run Code Online (Sandbox Code Playgroud)

如果可以在spring引导应用程序属性中定义的模式中创建表,那将是很好的(可以作为ENV传递给不同的环境).如果未在@Table注释中指定模式,则表将在公共模式中创建.

有没有办法为表设置模式而不在表注释中设置它,但只有属性文件配置?

schema hibernate spring-data spring-boot

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

Hibernate 架构在部署时自动删除

查看与 Hibernate 模式生成器相关的问题(例如,这个问题)使我得出这样的结论:设置行为的属性是hibernate.hbm2ddl.auto

然而,它似乎被忽略,因为它的值是什么并不重要——当 Spring Boot 应用程序部署到 Wildfly 时,模式总是被导出,并且表总是被删除。

以下代码包含 H2 数据源和 Hibernate 会话工厂的导入和配置 bean。

import javax.sql.DataSource;
import java.util.Properties;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

@Bean
public DataSource dataSource() {
    return new DriverManagerDataSource(h2Connection, h2Username, h2Password);
}

@Bean
public LocalSessionFactoryBean sessionFactory() {
    Properties properties = new Properties();
    properties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
    properties.put("hibernate.show_sql", true);
    properties.put("hibernate.hbm2ddl.auto", "validate");

    LocalSessionFactoryBean localSessionFactory = new LocalSessionFactoryBean();
    localSessionFactory.setDataSource(dataSource());
    localSessionFactory.setHibernateProperties(properties);
    localSessionFactory.setAnnotatedClasses(new Class[] { Account.class, Product.class, Subscription.class });

    return localSessionFactory;
}
Run Code Online (Sandbox Code Playgroud)

过去几天我一直在研究这个问题,但仍然没有找到正确的解决方案。否则休眠工作正常。

问题是如何在每次部署时禁用表删除,以便 H2 数据库中的数据不会丢失。

更新 看起来当会话关闭时表被删除(新部署开始)

2015-11-05 04:39:15 INFO …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

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

使用java.time将月份添加到特定月份

使用LocalDateTime或将月份添加到指定日期最干净的解决方案是什么LocalDate

很好的答案是在java.time中,如何计算一个月的结果?在JSR-310中查找一周中某天的下一次出现,因此我希望可以使用类似的干净解决方案来解决此问题。

假设用户为某个周期性任务选择一个月中的某一天(从1到31)。选择后,将生成时间戳记,并且每个月都会增加。仅存储当前月份的时间戳(没有上个月的记录,每个月都会更新时间戳)和选定的月份。

如果选择的日期是31日,并且我们从1月31日开始添加一个月,则dateTime.plusMonths(1)方法将在2016年2月29日给出。如果dateTime.plusMonths(1)再次使用method,则结果是3月29日,而预期的是3月31日。但是,它的工作日为1日至28日。

可能正在使用每月31号的变通办法,dateTime.with(TemporalAdjusters.lastDayOfMonth())但这并不涵盖从28号到30号的日子,也可能是一个月的最后几天。

lastDayOfMonth()每月第30天的选定示例:1月30日2月29日(如果前一天的前一天较高,则plusMonth方法行为选择最后一天),3月31日(预期是每月的30号)。此方法不考虑每月的选定日期。


当然,这个问题有很多潜在的解决方案,包括一些检查和计算数月与数天之间的差异,但是我仅在可能的情况下使用java.time功能寻找解决方案。

澄清度

我正在寻找一种将日期移动到选定月份的下个月的方法。喜欢dateTime.plusMonths(1).withDayOfMonth(selectedDayOfMonth)。对于2月31日这样的日期,这将引发一个异常,以withDayOfMonth覆盖plusMonths对最后一个有效日期的调整。

使用plusMonth方法的迭代示例。在上一个迭代值中,采用-想象递归。

+-----------+------------------+---------------+
| iteration | Day-of-month: 31 |   Expected    |
+-----------+------------------+---------------+
|         1 | January 31st     | January 31st  |
|         2 | February 29th    | February 29th …
Run Code Online (Sandbox Code Playgroud)

java date java-time

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

中心垂直radiobutton和它的标签

我有这样的代码:

<form method="post" id="sc_form">        
     <div class="radio-group">     
          <input type="radio" name="phone" id="send" value="send"></input>
          <label for="send">?? ???????????</label>
     </div>
     <div class="radio-group">
          <input type="radio" name="phone" id="get" value="get"></input>
          <label for="get">?? ??????????</label>
     </div>  
     <input type="submit" name="send" value="?????????" id="send-button" />
</form>
Run Code Online (Sandbox Code Playgroud)

CSS:

#get, #send{
  border: none;
  width: auto;
  height: auto;
  display: inline;
}

.radio-group{
  text-align: left;
  margin: 0 10px 6px 10px;
  font-family: Arial,Helvetica,Garuda,sans-serif;
  font-size: 11px;
}

input[type='radio'], label{   
    vertical-align: baseline;
}
Run Code Online (Sandbox Code Playgroud)

我想在同一条线上设置收音机和标签,这样它们看起来很漂亮,并且垂直居中.

http://jsfiddle.net/Zn93w/

整页和CSS:http://jsfiddle.net/2yZTK/

html css

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

如何在内核中传递数组,做一些事情然后返回它 - OpenCL

我试图将一个数组传递给OpenCL内核,然后用它做一些事情并将其传递给主机.我在本教程中修改了代码.

这只是确定OpenCL实际工作原理的核心.我希望这会从array1的第一个元素中减去2并将其存储到array2的第一个元素中:

__kernel void test(global int* array1, global int* array2) {
    array2[0] = array1[0] - 2;
}
Run Code Online (Sandbox Code Playgroud)

在main中我有两个数组,一个(host1)有一些数字,第二个(host2)初始化为零.比使用我创建的内存缓冲区:

memobj = clCreateBuffer(context, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR, MEM_SIZE * sizeof(int), &host1, &ret);
memobj2 = clCreateBuffer(context, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR, MEM_SIZE * sizeof(int), &host2, &ret);
Run Code Online (Sandbox Code Playgroud)

构建程序后我设置了参数:

ret = clSetKernelArg(kernel, 0, sizeof(cl_mem), &host1);
ret = clSetKernelArg(kernel, 1, sizeof(cl_mem), &host2);
Run Code Online (Sandbox Code Playgroud)

然后在执行后我尝试将该数组恢复.

ret = clEnqueueReadBuffer(command_queue, memobj2, CL_TRUE, 0, MEM_SIZE * sizeof(int), host2, 0, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

这里,如果我将memobj2更改为memobj,则host2将包含host1的值,否则它将保持不变.我猜这不是一个人将如何返回数组.

我被困在这一点上.

c++ opencl

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