我阅读了一些关于如何设置eclipse和maven以创建一个新的空耳项目的文章,但所有解决方案都不完整或已经过时.
我相信我需要创建三个pom.xml文件/或三个项目:
我在eclipse中使用集成的maven插件尝试了这个.由于(我相信Helios)maven已经集成在eclipse中.所以我去了
file - > new - > maven - > maven project
并取消选中"创建一个简单的项目"复选框.在另一边,我得到了原型目录.为了创建客户端项目,我查找了maven-archetype-webapp版本1.0.但是缺少WebContent\META-INF等所有文件夹.
那么如何创建所有三个项目都是将它们组合在一起?
非常感谢,Hauke
PS.:我在问题5668710中读到关于创建没有maven的项目并激活依赖关系管理.但这是正确的方法吗?我不这么认为.
我在JBoss上部署了一个带有一些实体类的EJB项目.
一旦我部署EJB Jboss就会给我这个例外:
create table service_db (id integer not null auto_increment, ipAddress varchar(255),
primary key (id)) type=InnoDB
Unsuccessful: create table service_db (id integer not null auto_increment,
ipAddress varchar(255), primary key (id)) type=InnoDB
2011-08-17 11:38:59,997 ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1....
Run Code Online (Sandbox Code Playgroud)
不应该是引擎= InnoDB而不是类型?我试图在没有运气的情况下在mysql中执行此语句(同样的错误).如果我用引擎移除或更换类型,它正在工作.
我的问题是,我可以改变谁?
这是我的persistance.xml(如果它很重要)
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> …Run Code Online (Sandbox Code Playgroud) 我有一个关于如何最好地构建可以修改数据库中记录的 API 的一般性问题。
假设我们有一个包含 10 列的表,我们可以使用 REST (GET) 查询这 10 列。JSON 响应将包含所有 10 个字段。这很简单并且工作起来没有问题。
下一步是有人想要通过 POST 创建新记录。在这种情况下,该人仅发送 JSON 请求中 10 个字段中的 8 个。然后我们只填充数据库中的 8 个字段(其余为 NULL)。这也没有问题。
但是如果有人想要更新记录怎么办?我们在这里看到了不同的可能性,各有优缺点。
仅发送应更新的内容。问题:如何显式清空/删除字段?如果在 JSON 中传递“NULL”,我们会在对象中得到 NULL,但任何其他未传递的字段也为 NULL。因此我们无法区分哪些字段可以删除,哪些字段不能触及。
完整的对象已发送。问题:这里的对象之前可以通过 GET 获取,相应地更改并通过 PUT 返回。现在我们取回了所有信息,并且可以将信息直接写回到数据库中。因为空字段要么之前已经为空,要么被用户清除。
如果通过更新 API 来扩展对象,会发生什么情况。假设我们将数据库再扩展五个字段。API 的用户进行 GET,获取 15 个字段,但只能读取他页面上他知道的 10 个字段(因为他还没有更新他的一侧)。然后他更改了 10 个字段中的一些字段并通过 PUT 将它们发回。然后,我们将仅更新网站上的 10 个字段,并且 5 个新字段将从数据库中清空。
或者您是否必须为每个字段创建一个单独的端点?我们也考虑过创建一个带有键/值的映射,到底应该改变什么。
关于技术:我们使用Wildfly 15 with Resteasy and Jackson.
例如:
数据库一开始
+----+----------+---------------+-----+--------+-------+
| ID | Name | Country | Age | Weight | Phone |
+----+----------+---------------+-----+--------+-------+ …Run Code Online (Sandbox Code Playgroud) 每个人,
几周前,我们将后台应用程序从 Oracle Java 8 更改为采用 JDK 11(热点)。在最初的几周和几个月里,我们没有注意到任何事情,但现在我们的数据中心正在等待更新。在测试系统中我们注意到存在内存问题。
我们在一台服务器上运行最多 30 个应用程序实例。每一个都与 Tanuiksoft Service Wrapper 一起运行,并根据实例分配了不同数量的 XMX 内存。
我们的服务每 10 分钟打印一次以下信息
double total = Runtime.getRuntime().totalMemory() / 1024;
double max = Runtime.getRuntime().maxMemory() / 1024;
double free = Runtime.getRuntime().freeMemory() / 1024;
int activeThreads = Thread.activeCount();
logger.info("Memory: [total={0}] [max={1}] [free={2}] [active threads={3}]", //
total, max, free, activeThreads);
Run Code Online (Sandbox Code Playgroud)
这是 Java 8 的输出,其中总内存减少。
如果我理解正确的话,totalMemory 是虚拟机让操作系统保留的内存 - 那么该内存将不再可供操作系统使用。最大内存被理解为服务包装器中的 XMX 参数。freeMemory 是totalMemory 中仍然空闲的内存。
当时的输出看起来像这样
Memory: [total=278,016] [max=466,432] [free=183,895] [active threads=33]
Memory: [total=278,016] [max=466,432] [free=176,264] [active threads=33]
Memory: [total=259,072] …Run Code Online (Sandbox Code Playgroud) 我刚刚创建了一个简单的java应用程序,它将为我们的数据库生成实体类.我将保存到本地光盘的那些java类.到目前为止一切正常.
现在我想从我的主应用程序中的那些java类生成一个JAR文件.我知道,我可以操作jar文件,我还读到了在运行时将类添加到jar文件.
但就我而言,我的构建路径中没有类.我需要的是从刚刚创建的java文件创建类文件并将它们放入我的jar文件中.
这可能在我的java应用程序中吗?
我这样做的原因是我们的数据库将一直由许多人扩展,我不想手动将这些字段添加到我的实体.所以我想创建一个从我们的数据库中扫描systables的应用程序,并从这些信息中生成java实体文件.但是现在我需要在生成它们之后在类文件中编译这些java文件并将它们添加到我的最终jar文件中.
感谢您提供有关此问题的任何帮助和/或信息.
许多问候,霍克
我们正在尝试将我们的项目从hibernate 3迁移到hibernate 4.一切都运行良好,但问题是启动.
我们不使用JPA,我们使用直接hibernate与xml文件和映射文件.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.informix.jdbc.IfxDriver</property>
<property name="hibernate.connection.url">jdbc:informix-sqli://xxx:xxx/xxx:INFORMIXSERVER=xxx</property>
<property name="hibernate.connection.username">xxx</property>
<property name="hibernate.connection.password">xxx</property>
<property name="hibernate.dialect">org.hibernate.dialect.InformixDialect</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">false</property>
<property name="generated.mappingFile">dev.xml</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
generated.mappingFile属性是一个自己的属性.启动时,将加载该文件(dev.xml).这个文件看起来像这样:
<mapping resource="de/cargosoft/edi/cargoservice/entities/aart/Aart_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/abteilung/Abteilung_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/adr/Adr_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/adraesort/Adraesort_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/adrakte/Adrakte_DEV.hbm.xml" />
...
<mapping resource="de/cargosoft/edi/cargoservice/entities/zollanmtxt/Zollanmtxt_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/sstbasis/Sstbasis_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/sststruktur/Sststruktur_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/ssthandler/Ssthandler_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/sstproperty/Sstproperty_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/sstprophandler/Sstprophandler_DEV.hbm.xml" />
<mapping resource="de/cargosoft/edi/cargoservice/entities/sstneustart/Sstneustart_DEV.hbm.xml" />
Run Code Online (Sandbox Code Playgroud)
我们减少了这篇文章中的映射数量.我们目前有超过500个映射.
使用hibernate 3 …
我正在使用JGit并希望从远程存储库拉到我的本地存储库.
第一个approch是克隆存储库,并且工作正常:
CredentialsProvider cp = new UsernamePasswordCredentialsProvider(username, password);
try (Git result = Git.cloneRepository()
.setURI("http://172.20.1.2/team/myrepo.git")
.setDirectory(new File("c:\\temp\\gittest"))
.setCredentialsProvider(cp)
.call()) {
System.out.println("Having repository: " + result.getRepository().getDirectory());
}
Run Code Online (Sandbox Code Playgroud)
但是在第二次调用之后,不需要再次克隆存储库.所以我觉得我需要拉
Git git = Git.open(new File("c:\\temp\\gittest"));
git.pull().call();
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
org.eclipse.jgit.api.errors.TransportException: http://172.20.1.2/team/myrepo.git: Authentication is required but no CredentialsProvider has been registered
Run Code Online (Sandbox Code Playgroud)
我不知道在哪里可以传递pull命令的凭据.
我想在我的应用程序中实现某种通知系统,但在计算通知的实际位置时遇到问题。所有通知都应出现在单独的阶段中,并且每个通知应相互对齐,并且每个通知都是一个带有两个标签(标题和消息)的简单 VBox。
我创建了一个小的独立应用程序来解决我遇到的问题。
一旦您按下主舞台上的按钮,就会创建一个 VBox 并将其添加到第二个通知舞台。一旦需要添加秒通知,第二个通知应位于第一个通知下方,依此类推。因此,我需要找到第一个通知的高度,以便将第二个通知放置在下面。
我知道我可以使用 VBox,但在我的应用程序中,通知应该制作平滑的动画,并将其他通知进一步向下推。我删除了整个动画并删除了部分通知,以便示例保持尽可能小。
问题是所有通知框都具有相同的高度 - 但它们并非如此(如果您修改文本并使其更长/更小)。
package whatever;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class NotificationTest {
private Stage notificationStage;
private Pane contentPane;
private static final Integer NOTIFICATION_WIDTH = 250;
private Double notificationOffset = 0.0;
private static final Integer SPACING_BETWEEN_NOTIFICATIONS = 20;
public void start() {
Stage mainStage = new Stage();
TextField textField = new TextField("Some long text for testing …Run Code Online (Sandbox Code Playgroud) 我有一个我一生都无法理解的问题。为什么我在这里得到一个空指针?
原则上我有三个班级。一个单例类,一个工厂类和一个主类。在 Main 中,我调用了 Singleton 类一次,让我输出一些东西。
然后我在工厂上调用一个静态方法。在这个工厂类中有一个静态块,它依次访问单例类。然而,此时单例类的实例为空。
我真的不明白这一点,因为使用调试器我也看到变量为空,但调用流程实际上是预期的。
主程序
package testing;
public class Main {
public static void main(String[] args) {
Singleton.getInstance().getValue();
Factory.build();
}
}
Run Code Online (Sandbox Code Playgroud)
单例.java
package testing;
public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private String value;
public static Singleton getInstance() {
return INSTANCE;
}
private Singleton() {
configureSingleton();
Factory.build();
}
private void configureSingleton() {
value = "TEST";
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value; …Run Code Online (Sandbox Code Playgroud) 我创建了一个类 StartupListener 实现 ServletContextListener。里面
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
Run Code Online (Sandbox Code Playgroud)
我创建了一个计时器,每 30 秒执行一次。在这个计时器内,我想从我的 @ApplicationScoped - Bean 设置一个参数,以便将计时器中的信息显示到我的网站。
这是我到目前为止所做的:
启动监听器.java
package de.whatever;
import java.util.Timer;
import javax.naming.Context;
public class CargoServiceStartupListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
....
ModuleScannerTask task = new ModuleScannerTask(contextEvent.getServletContext());
Timer timer = new Timer("Scanner");
timer.schedule(task, 0, 10000);
Run Code Online (Sandbox Code Playgroud)
ModuleScannerTask.java
package de.whatever;
import java.util.Enumeration;
public class ModuleScannerTask extends TimerTask{
private ServletContext context;
public ModuleScannerTask (ServletContext context) {
this.context = context;
}
@Override
public void run() {
System.out.println("Start scanning …Run Code Online (Sandbox Code Playgroud) 我想要这样的东西:
CUSTOMERNAME="THIS IS A TEST"
printf "| %-30s " $CUSTOMERNAME
Run Code Online (Sandbox Code Playgroud)
但问题是,值CUSTOMERNAME有一些空间。输出如下所示:
| THIS | IS | A | TEST
Run Code Online (Sandbox Code Playgroud)
但我想要这样的东西
| THIS IS A TEST |
Run Code Online (Sandbox Code Playgroud)
我能做些什么?有任何想法吗?
谢谢,豪克
可以说我有两个模型。老师和学生,每个学生可以有一个老师(不是几个)。所以我想在我的学生窗格上有一个组合框,我可以在其中选择一位老师。
两个模型也都存储在数据库中,我只希望教师的数据库 ID 出现在学生的模型中,但在组合框中应该出现教师的名字。
模型也应该绑定到组合框,所以如果有人改变了组合框中的老师,模型(学生的)也应该刷新。使用文本字段,我可以将它们绑定到 StringProperty 对象,但在这种情况下,我需要将组合框项 (Teacher.java) 绑定到我的 Student.java 中的一个整数属性。
我还考虑将教师模型作为我学生班级中的一个属性,但我认为这无济于事,因为那时我需要将组合框项(teacher.java)与我的学生模型中的教师对象绑定,但只有属性可以绑定对象。
教师.java
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public class Teacher {
private Integer databaseID;
private StringProperty name = new SimpleStringProperty();
private IntegerProperty age = new SimpleIntegerProperty();
public Teacher (Integer databaseID) {
// load data from database and fill into model
}
public void store() {
// write model to database
}
// getters and setters ...
@Override
public String toString() {
return name.get();
} …Run Code Online (Sandbox Code Playgroud) 有没有办法在下一轮循环开始时获取信息?时间线的 onFinish 方法不适用于无限循环。
我唯一的想法是使用 currentTimeProperty 并检查值是否增加或减少。
感谢您的帮助豪克