据我所知,java将存储器作为32位整数存储在内存中,具有以下属性:
这样就不会为三种特殊情况留下任何备用位:
我猜可以用负0来存储其中一个.
这些实际上如何在记忆中表现出来?
我试图用procrun包裹弹簧靴"uber JAR".
按预期运行以下工作:
java -jar my.jar
我需要我的弹簧启动罐自动启动Windows启动.最好的解决方案是将jar作为服务运行(与独立的tomcat相同).
当我尝试运行这个时,我得到"Commons Daemon procrun失败并退出值:3"
看一下spring-boot源代码,它看起来好像使用了自定义类加载器:
尝试直接运行main方法时,我也得到"ClassNotFoundException".
java -cp my.jar my.MainClass
有没有一种方法可以用来在spring boot jar中运行我的main方法(不是通过JarLauncher)?
有没有人成功地将spring-boot与procrun集成?
我知道http://wrapper.tanukisoftware.com/.但是由于他们的许可我不能使用它.
UPDATE
我现在设法使用procrun启动服务.
set SERVICE_NAME=MyService
set BASE_DIR=C:\MyService\Path
set PR_INSTALL=%BASE_DIR%prunsrv.exe
REM Service log configuration
set PR_LOGPREFIX=%SERVICE_NAME%
set PR_LOGPATH=%BASE_DIR%
set PR_STDOUTPUT=%BASE_DIR%stdout.txt
set PR_STDERROR=%BASE_DIR%stderr.txt
set PR_LOGLEVEL=Error
REM Path to java installation
set PR_JVM=auto
set PR_CLASSPATH=%BASE_DIR%%SERVICE_NAME%.jar
REM Startup configuration
set PR_STARTUP=auto
set PR_STARTIMAGE=c:\Program Files\Java\jre7\bin\java.exe
set PR_STARTMODE=exe
set PR_STARTPARAMS=-jar#%PR_CLASSPATH%
REM Shutdown configuration
set PR_STOPMODE=java
set PR_STOPCLASS=TODO
set PR_STOPMETHOD=stop
REM JVM configuration
set …Run Code Online (Sandbox Code Playgroud) 我有一个监控服务,它在应用程序启动、应用程序关闭和每分钟(滴答声)时向rabbitMQ发送一条消息。
启动和勾选事件工作正常。当最初编写该类时,关闭事件也起作用。
我正在使用 spring-boot-starter-amqp 1.3.3.RELEASE
该事件是在接口destroy的方法上触发的DisposableBean。
我也尝试过实现ApplicationListener<ContextClosedEvent>接口和Lifecycle接口
上述两种方法都返回:
java.lang.IllegalStateException:ApplicationContext 已关闭,ConnectionFactory 无法再创建连接。
我注意到有一个错误修复https://jira.spring.io/browse/AMQP-536,它建议了Lifecycle界面。
如何确保在 RabbitMQ 连接关闭之前发送关闭事件消息?
编辑:更多信息和最新代码
该应用程序有多个连接工厂到不同的服务器。Monitor Service 通过 与 RabbitMQ 服务器连接monitorRabbitTemplate。
问题似乎是 monitorRabbitTemplate连接工厂在MonitorService.
最新代码(使用Lifecycle代替ApplicationListener<ContextClosedEvent> 和DisposableBean):
@Component
public class MonitorServiceImpl implements MonitorService , Lifecycle {
private static final Logger LOGGER = LoggerFactory.getLogger(MonitorServiceImpl.class);
private final RabbitTemplate monitorRabbitTemplate;
private final String queueName;
private final Gson gson = new Gson();
@Autowired …Run Code Online (Sandbox Code Playgroud) 我正在创建一个 Spark 作业,需要使用用 python 编写的函数将列添加到数据帧中。其余的处理是使用 Scala 完成的。
我找到了如何从 pyspark 调用 Java/Scala 函数的示例:
我发现以其他方式发送数据的唯一示例是使用pipe
我是否可以将整个数据帧发送到 python 函数,让该函数操作数据并添加其他列,然后将生成的数据帧发送回调用 Scala 函数?
如果这是不可能的,我当前的解决方案是运行 pyspark 进程并调用多个 Scala 函数来操作数据帧,这并不理想。
java ×2
spring-boot ×2
apache-spark ×1
infinity ×1
nan ×1
procrun ×1
pyspark ×1
python ×1
rabbitmq ×1
scala ×1
spring ×1
spring-amqp ×1