到目前为止,直到非模块化的java,你只需要放入一个文件,src/main/java/resources确保它在classpath中,然后加载它
file = getClass().getClassLoader().getResourceAsStream("myfilename");
Run Code Online (Sandbox Code Playgroud)
来自类路径中的任何位置.
现在有了模块,情节变浓了.
我的项目设置如下:
module playground.api {
requires java.base;
requires java.logging;
requires framework.core;
}
Run Code Online (Sandbox Code Playgroud)
配置文件放在里面src/main/resources/config.yml.
项目运行
java -p target/classes:target/dependency -m framework.core/com.framework.Main
Run Code Online (Sandbox Code Playgroud)
由于主类不在我自己的项目中,而是在外部框架模块中,因此无法看到config.yml.现在的问题是,有没有办法以某种方式将我的配置文件放入模块或打开它?我是否必须更改框架上游加载文件的方式?
我尝试在module-info中使用"exports"或"opens",但它想要一个包名,而不是文件夹名.
如何以最佳实用的方式实现这一点,以便它可以像Java 8一样工作,并尽可能少地进行更改?
原始问题略有不同,但是一个更重要的问题的一部分.
我试图在Windows上使用静态OpenSSL将Qt 5.2构建为静态.
我的最终目标是发送一个二进制文件而无需提供libeay32.dll和ssleay32.dll.但是,在我看来,这是不可能的.我使用静态openssl库构建了静态Qt,但似乎Qt完全忽略了提供的lib并且总是搜索DLL.
这个答案还表明QtNetwork总是搜索DLL并忽略其他所有内容,但它也声明"两个选项是将OpenSSL编译成Qt ......"但似乎并非如此.
有人能提供明确的答案吗?
这是我的Qt配置(为了便于阅读而增加了换行符):
configure -static -qmake -opensource -nomake examples -opengl desktop
-platform win32-msvc2010 -openssl -I C:\git\openssl\build\include
-L C:\git\openssl\build\lib OPENSSL_LIBS="-llibeay32 -lssleay32 -lgdi32"
Run Code Online (Sandbox Code Playgroud) 当你and使用掩码的某些数据时,你会得到一些与数据/掩码大小相同的结果.我想要做的是取结果中的掩码位(掩码中有1)并将它们向右移动,使它们彼此相邻,我可以对它们执行CTZ(计数尾随零) .
我不知道如何命名这样的程序,所以谷歌让我失望.该操作最好不应该是循环解决方案,这必须尽可能快地操作.
这是一个用MS Paint制作的令人难以置信的图像.

我一直在使用Code :: Blocks和MingW编译器中的值进行以下向量初始化:
vector<int> v0 {1,2,3,4};
Run Code Online (Sandbox Code Playgroud)
之后,我不得不将代码移动到visual studio项目(c ++),并尝试构建.我收到以下错误:
本地函数定义是非法的
Visual Studio编译器不支持这种初始化?
如何更改代码以使其兼容?
我想初始化vector并同时用值填充它,就像数组一样.
我正在使用Java EE JMS队列.我正在将对象发送到队列中,然后使用MDB接收它们.当将消息体(使用getBody())读入对象时,我得到以下异常:
javax.jms.MessageFormatException: Body not assignable to class ...
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以从中获得更具描述性的错误,这将告诉为什么它不可分配?我也尝试进入调试模式,看看哪种消息对象到达MDB但是我已经看到它被序列化,所以它并没有真正有用.
在将对象类型发送到队列之前,可以在调试器中正确识别它.
附加信息:如果我手动创建一个空对象并发送它,则可以正确识别它.生产对象来自REST端点,包含许多属性,并在此过程中进行了多次转换.某些数据必须阻止分配,但逐步调试每个属性将是一种痛苦,并且只是作为最后的手段.
对于如何在Java中测试类正确实现Serializable(不仅仅是Serializable的实例)的每个答案,对象都被确认为可序列化的
对象发送方式为:
jmsContext.createProducer().send(queue, object);
我设法通过将所有属性设置为null然后逐个评论它直到它工作来缩小范围.事实证明,持续时间类型属性不正确?初始化导致问题.在另一种情况下,导致它的是XMLGregorianCalendar属性.尽管如此,这是一种非常hacky的调试方式,我仍然不知道为什么分配失败,我只知道哪个属性导致它.
暂时我最终将实体ID传递到队列而不是完整对象,我通过ID从数据库中检索它们.
完整stacktrace的Pastebin:http://pastebin.com/vWvhDTcr
我有以下模型:订单有多个项目,项目有多个其他孩子.它是几层深的树.
我对所有急切装载@OneToMany连同@JoinFetch和所有迟缓装载@ManyToOne(以避免在N + 1个问题的其他查询).
根据我如何在JPQL中进行"深度"提取连接?我可以使用多个查询提示来推测加载整个树,但是,我更喜欢仅通过注释来执行此操作.
不幸的是,即使对整个树进行了注释@JoinFetch,似乎连接只执行1级深度,导致多个查询而不是整个树的单个查询.
这些是我可以看到执行的查询:
订单 - 所有孩子的左外连接.
OrderItem - 所有子项的左外连接.
所有级别的......等等.
我可以看到@JoinFetch它正在工作,但它只能在一个层次上工作.我想要实现的是一个加载整个树的单个查询.
虽然这个级别的深度加载确实帮助我加快了超过2倍的调用,但是当一次加载大量实体时它们仍然不是最理想的,因为每个权限意味着5个以上的额外查询.
有没有办法仅使用注释加载整个树,还是应该手动设置多个查询提示来实现此目的?
由詹姆斯·萨瑟兰答案在这里似乎并不为真(约递归工作).
假设我们在表单中使用CSRF令牌,但是碰巧我们的网站上存在一个未被注意的XSS漏洞。
据我了解,在这种情况下,CSRF令牌保护是完全无效的,因为攻击者可以通过XSS使用XMLHttpRequest收回它。
在这种情况下,是否有一种方法可以使CSRF保护有效,使其在攻击中幸存下来?或者我们的站点在完全采取CSRF之王之前应该首先具有安全的XSS保护吗?
在每个页面请求上设置一个新令牌,而不是在登录时设置令牌会解决吗?这带来了一次打开更多表单的问题,我不喜欢它。
我想抽象为每个 dbms 生成 uuid 的函数:
<property name="uuid_function" value="gen_random_uuid()" dbms="postgresql"/>
<property name="uuid_function" value="NEWID()" dbms="mssql"/>
<property name="uuid_function" value="sys_guid()" dbms="oracle"/>
Run Code Online (Sandbox Code Playgroud)
然后在我的 CSV 中使用此属性,该属性由 loadData 加载,如下所示:
"${uuid_function}"
Run Code Online (Sandbox Code Playgroud)
但它不起作用($ 上的解析错误)。另一种方法是在 loadData 内的列上使用默认值:
<column name="id" type="COMPUTED" defaultValueComputed="${uuid_function}"/>
Run Code Online (Sandbox Code Playgroud)
..也不起作用。Id 列被定义为 NOT NULL,如果我将该列保留在 CSV 之外,它会抱怨列不能为空,即使它应该使用默认值。
如何在 CSV 文件中使用参数和/或为什么默认值让我失败?
notification在 Activity 中检索通知标题和正文(JSON 部分),只能data从 Extras 中的 Bundle 中检索该部分。我的主要活动:
Intent intent = getIntent();
if (intent.getExtras() != null) {
debug("Intent with extras");
Bundle b = getIntent().getExtras();
for (String key : b.keySet()) {
Object value = b.get(key);
Log.d(TAG, String.format("%s %s (%s)", key,
value.toString(), value.getClass().getName()));
}
}
Run Code Online (Sandbox Code Playgroud)
日志输出:
带有额外内容的意图 google.sent_time 1487153876625 (java.lang.Long) openUrl http://192.168.29.121:8083/v1/messages/87046D17-6470-427C-A046-2E1C92E21D23/open (java.lang.String) customProperties {" big_icon_url":"link"} (java.lang.String) 来自 814199820217 (java.lang.String) google.message_id 0:1487153876640504%a38586a6a38586a6 (java.lang.String) Collapse_key com.kumuluz.ccm.android.sample (java .lang.String)
如您所见,仅给出了数据部分(openUrl、customProperties...)。
如果我手动处理自定义通知,这不是问题,因为我可以将标题和正文推送到附加内容,然后它们会出现在捆绑包中。但是,当应用程序处于后台时,如何从系统处理的通知中获取标题和正文?
我没有看到任何合适的方法来Intent …
我有一个zlib链接器错误.花了几个小时尝试解决问题,但到目前为止还没有.Zlib是使用vs2010,win32版本构建的.我的项目使用相同的.
错误提取:
error LNK2019: unresolved external symbol _deflateEnd@4 referenced in function
error LNK2019: unresolved external symbol _deflate@8 referenced in function
error LNK2019: unresolved external symbol _deflateInit_@16 referenced in function
Run Code Online (Sandbox Code Playgroud)
在文件中包含zlib.h,如下所示:
#ifdef WIN32
# define ZLIB_WINAPI
#endif
#include "zlib.h"
Run Code Online (Sandbox Code Playgroud)
项目设置:
链接器 - >常规 - >附加库依赖项:C:\ somepath\zlib
链接器 - >输入 - >附加依赖项:zlibstatic.lib
链接器详细输出(不完整,仅适用于zlib):
Searching C:\somepath\zlib\zlibstatic.lib:
Searching C:\somepath\zlib\zlibstatic.lib:
Run Code Online (Sandbox Code Playgroud)
两个直接命中但它没有做任何事情..
我看到了这个问题,但我不认为我有这个问题,因为:
它实际上是一个开源项目,所以如果有人可以尝试重现问题:
我创建了一个程序,它从一个进程的加载的dll(模块)中读取X字节并对它们进行哈希处理,以便将它们与硬编码的干净哈希进行比较.模块的基地址始终相同(在XP和7上由不同的人在几台不同的计算机上测试),并且哈希值也始终相同.
但是对于一个人来说,基地址总是不同的,并且哈希值也总是不同的(每次运行时都不同).他正在使用Windows 7旗舰版.
我的问题是:
为什么模块的基地址总是不同?我知道dll可以加载到不同的地址,但是什么触发了这种行为?(DLL总是具有相同的基址吗?)基址始终是0x02XXXXXX类型,而其他人得到的永不改变的地址是0x6F000000.
为什么哈希不匹配?即使模块加载到不同的地址,我仍然从base + someoffset读取相同数量的字节.散列不仅不同,每次运行程序时都不同.因此,我怀疑基地址实际上是错误的,并且有些可疑.我比较了我的dll和他的dll的md5,它们是相同的,所以加载的库是完全相同的.
代码中采取的步骤:
CreateToolhelp32Snapshot,Process32Next)EnumProcessModules)GetModuleFileNameEx)查找特定模块并获取句柄ReadProcessMemory(hProcess, base_of_module+some_additional_offset, dllBuffer_to_read_into, 0x100000, &numRead),其中的0x100000并没有溢出模块尺寸该程序正在做的是将内存中的dll内容与"干净"哈希进行比较,以发现对恶意软件/黑客/等的篡改.
我在部署到 WildFly 8.2.1 时遇到一个奇怪的错误,这与 Resteasy 和 maven 设置有关。我已经失去了无数个小时的谷歌搜索无济于事。
- 无法实例化 MessageBodyReader
-AmbiguousResolutionException: WELD-001318: 无法解决之间的不明确依赖关系
项目组织:
-root
-project
--project-ear
--project-main
--project-rest
--project-jms
Run Code Online (Sandbox Code Playgroud)
根 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>si.fri.liis.jmsprojekt</groupId>
<artifactId>root</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-all</artifactId>
<version>8.2.1.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-ejb-client-bom</artifactId>
<version>8.2.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.0.10.Final</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration> …Run Code Online (Sandbox Code Playgroud) c++ ×5
java ×3
android ×1
bitmask ×1
c ×1
c++11 ×1
csrf ×1
debugging ×1
dll ×1
eclipselink ×1
firebase ×1
jakarta-ee ×1
java-9 ×1
java-ee ×1
java-platform-module-system ×1
jax-rs ×1
jms ×1
jpa ×1
linker ×1
liquibase ×1
maven ×1
openssl ×1
php ×1
qt ×1
qtnetwork ×1
resteasy ×1
security ×1
static ×1
vector ×1
visual-c++ ×1
web ×1
winapi ×1
xss ×1
zlib ×1