添加到jar后,GeoLite2数据库会损坏

我正在尝试在我的Java应用程序中包含一个Maxmind数据库。 我使用的数据库是GeoLite2-City.mmdb的最新版本。 当我将数据库文件放入项目( src/main/resources/GeoLite2-City.mmdb )并运行项目时,我可以通过com.maxmind.geoip2.DatabaseReader使用数据库并执行IP地址查找。 但是,一旦我编译项目并创建一个包含数据库的jar文件,我就无法读取文件中的数据库,我得到了exception: com.maxmind.db.InvalidDatabaseException: Could not find a MaxMind DB metadata marker in this file (). Is this a valid MaxMind DB file? 解压缩.jar文件并查看mmdb文件我可以看到文件的大小已从38Mb更改为59Mb,我猜这是抛出exception的原因。 有没有人知道在.jar中打包这个文件的方法,以便它可以使用? 我已经尝试将原始.gz文件添加到包中,然后解压缩然后加载数据库,但这也不起作用。 谢谢

如何在JavaFX中检测选项卡头的位置和大小

我还是javaFX的新手。 在我的代码中,我需要获取选项卡标题的位置和大小,但我找不到任何返回其大小或位置的属性或函数。

apache poi在word文档中添加表

我有Java代码使用Apache POI创建表和一些文本到word文档,但它在最后一个文档中添加了表。 我想写一些文本,然后添加表并再次写一些文本。 目前它添加表格第一个和最后一个文档添加2个测试(Hi&Bye) 我的代码: public static void main(String[] args)throws Exception { //Blank Document XWPFDocument document= new XWPFDocument(); //Write the Document in file system FileOutputStream out = new FileOutputStream( new File(“create_table.docx”)); //create table XWPFTable table = document.createTable(); XWPFParagraph para = document.createParagraph(); XWPFRun run = para.createRun(); run.setText(“Hi”); //create first row XWPFTableRow tableRowOne = table.getRow(0); tableRowOne.getCell(0).setText(“col one, […]

使用Apache POI访问数据透视表的字段设置

我正在创建一个工作簿,其中包含来自数据源的工作表填充数据,然后创建第二个工作表,其中包含该数据的数据透视表视图。 一切正常,但我似乎无法改变数据透视表的默认外观。 我正在尝试获取设置(行标签 – >从列表中单击一个 – >字段设置 – >小计 – >无和行标签 – >从列表中单击一个 – >字段设置 – >在创建数据透视表时检查布局和打印 – >’以表格forms显示项目标签’但在POI中找不到句柄/标记。 尝试在pivotTable.getCTPivotTableDefinition()或pivotTable.getCTPivotTableDefinition()。getPivotTableStyleInfo()下找到一些东西,但没有锁定。 请告知是否有方法在创建数据透视表期间使用poi设置这些设置,而不是在遵循括号中提到的步骤之后。 这是我的数据透视表代码: XSSFSheet sheet = (XSSFSheet)wb.createSheet(“Data”); … … //filling data sheet, skipping this part as it’s not relevant … XSSFSheet pivotSheet = (XSSFSheet)wb.createSheet(“Pivot Table”); AreaReference source = new AreaReference(sheet.getSheetName()+”!A$1:W$”+String.valueOf(sheet.getLastRowNum())); CellReference position = new CellReference(“A3”); XSSFPivotTable […]

使用级联函数调用设计API(Class.doThis(“…”)。doThat(“…”)…)

我已经看到一些API的设计方式必须使用它们,如下面的代码 Class.doThis(“…”).doThat(“…”)….. 例如,HTTPCommon(Fluent API)可用作: Request.Get(“http://somehost/”) .connectTimeout(1000) .socketTimeout(1000) .execute().returnContent().asString(); 石英计划可用作: JobDetail job = newJob(HelloJob.class) .withIdentity(“job1”, “group1”) .build(); SimpleCatptch可用作: Captcha captcha = new Captcha.Builder(200, 50) .addText() .addBackground() .addNoise() .gimp() .addBorder() 这种API设计的名称是什么? 这样的设计好吗?

一段时间后,随着ProcessBuilder阻止了Java应用程序

我正在开发一个包含3个按钮的Java桌面应用程序(让我们称之为控制台):其中两个启动Win32应用程序; 第三个应该启动一个可执行jar: ProcessBuilder pb = new ProcessBuilder(“java”, “-jar”, testDrivePath); Process process = pb.start(); 其中testDrivePath是jar的路径(类似于“C:\ Programs \ TestDrive.jar”) TestDrive.jar应用程序正确启动,但一段时间后它会阻塞并无法进行任何操作。 如果我关闭控制台,TestDrive.jar又恢复工作了! 如果我单独启动TestDrive.jar(不从控制台调用它),一切都是正确的。 任何人都可以建议吗?

当包含ajax关闭事件侦听器时,Primefaces对话框不会重新打开

我想以编程方式控制何时显示和隐藏对话框。 它的工作原理除非使用’X’关闭对话框并且添加了ajax close事件监听器。 例如,在下面的代码中使用’X’关闭对话框,如果我注释掉ajax线,则使用按钮多次显示/重新打开。 BTW:我已经看到了使用oncomplete方法调用欺骗的javascript选项。 Status: Dialog content …. @ManagedBean @ViewScoped public class HelloBean implements Serializable { private static final long serialVersionUID = 1L; private boolean visible; public boolean isVisible() { return visible; } public void setVisible(boolean visible) { this.visible = visible; } public void show() { setVisible(true); System.err.println(“show(): ” + visible); } public void […]

是否可以从JBoss容器中部署的所有.war文件中读取属性文件

我已经设法将.war部署到Jboss Web容器中,该容器包含并读取位于/ META-INF / groupid-dir / artifactid-dir /下的pom.properties 为了访问该文件,我在同一个战争中的JSP中使用了以下代码: ServletContext servletContext = getServletConfig().getServletContext(); InputStream in = servletContext.getResourceAsStream(“META-INF/maven/groupid-dir/artifactid-dir/pom.properties”); 这很好用。 但我希望能够从容器中部署的ALL .war动态读取pom.propertes。 这是可能的还是我只能访问我的jsp的一个战争持有者的上下文? -MB

在C#中相当于Java的“ByteBuffer.putType()”

我试图通过从Java移植代码来格式化C#中的字节数组。 在Java中,使用方法“buf.putInt(value);”,buf.putShort,buf.putDouble,(等等)。 但是我不知道如何将它移植到C#。 我已经尝试过MemoryStream类,但是没有方法可以在字节数组的末尾放置特定的类型。 问题:C#中Java的“ByteBuffer.putType(value)”的等价物是什么? 谢谢!

更新(合并)时缺少Spring Data JPAvalidation

我正在使用Spring Data JPA的Spring boot 1.5.4.RELEASE开发项目。 问题是在更新实体时没有执行Hibernatevalidation器,或者至少在某些情况下它没有validation。 对于像下面这样的人 ,禁止使用空名称和技能集合必须具有最小1个元素和最大5个。在Spring Data存储库的调用保存期间,它们都被validation。 但是,对于已存在的实体的呼叫保存,它将仅validation名称的约束 – 并且不会检查技能。 @Entity public class Person { @Id @GeneratedValue private Long id; @NotBlank private String name; @ElementCollection(fetch = FetchType.EAGER) @Size(min = 1, max = 5) private Set skills = new HashSet(); protected Person() { } public Person(final String name, final Collection skills) { this.name = […]