我有一个在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".我已经尝试过改变各种配置但没有运气的一切.我错过了什么吗?
我正在使用Spring Boot 1.3.5和Hibernate 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注释中指定模式,则表将在公共模式中创建.
有没有办法为表设置模式而不在表注释中设置它,但只有属性文件配置?
查看与 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) 使用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) 我有这样的代码:
<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)
我想在同一条线上设置收音机和标签,这样它们看起来很漂亮,并且垂直居中.
整页和CSS:http://jsfiddle.net/2yZTK/
我试图将一个数组传递给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的值,否则它将保持不变.我猜这不是一个人将如何返回数组.
我被困在这一点上.