我正在尝试使用maven为一个名为"logmanager"的小型家庭项目生成一个可执行jar,就像这样:
我将那里显示的代码段添加到pom.xml中,然后运行mvn assembly:assembly.它在logmanager/target中生成两个jar文件:logmanager-0.1.0.jar和logmanager-0.1.0-jar-with-dependencies.jar.当我双击第一个jar时出现错误:
Could not find the main class: com.gorkwobble.logmanager.LogManager. Program will exit.
Run Code Online (Sandbox Code Playgroud)
当我双击jar-with-dependencies.jar时出现稍微不同的错误:
Failed to load Main-Class manifest attribute from: C:\EclipseProjects\logmanager\target\logmanager-0.1.0-jar-with-dependencies.jar
Run Code Online (Sandbox Code Playgroud)
我复制并粘贴了路径和类名,并检查了POM中的拼写.我的主要类从eclipse启动配置启动.有人可以帮我弄清楚为什么我的jar文件不会运行?另外,为什么有两个罐开始?如果您需要更多信息,请与我们联系.
这是完整的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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gorkwobble</groupId>
<artifactId>logmanager</artifactId>
<name>LogManager</name>
<version>0.1.0</version>
<description>Systematically renames specified log files on a scheduled basis. Designed to help manage MUSHClient logging and prevent long, continuous log files.</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<!-- nothing here -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.gorkwobble.logmanager.LogManager</mainClass> …Run Code Online (Sandbox Code Playgroud) 我正在配置我的hibernate项目以使用二级缓存提供程序,以便我可以利用查询缓存.
我在ehcache中添加了一个依赖项:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我认为我想要使用的提供程序类是:
net.sf.ehcache.hibernateEhCacheProvider
Run Code Online (Sandbox Code Playgroud)
当我在eclipse中查看引用的库时,我会看到@Deprecated注释EhCacheProvider,同时也会看到注释SingletonEhCacheProvider.是什么赋予了?我可以使用最新的替代供应商吗?
我正在使用hibernate版本3.4.0.GA,以防万一.
假设我有以下课程:
class A {
B getB();
C getC();
}
class B {
String getFoo();
}
class C {
int getBar();
}
Run Code Online (Sandbox Code Playgroud)
我想在A上过滤标准,在不同的子类属性上有两个过滤器,例如:
Criteria criteriaA = session.createCriteria(A.class);
Criteria criteriaB = criteriaA.createCriteria("b").add(Restrictions.eq("foo", "Something"));
Criteria criteriaC = criteriaA.createCriteria("c").add(Restrictions.eq("bar", 0));
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用"或"子句组合criteriaB和criteriaC,如:
//this does not work
criteriaA.add(Restrictions.disjunction().add(criteriaB).add(criteriaC));
Run Code Online (Sandbox Code Playgroud)
我怎么能做到这一点?我在这里绊倒了一些API.
当我从快照视图中删除文件时,下次我在ClearCase Explorer中查看快照时,会显示"??" 签出但删除图标.当我在快照上运行"查找修改的文件"时,不会显示已删除的文件.在快照上运行"更新视图"会导致ClearCase将丢失的文件重新复制回我的视图.
我想要发生的是:当我从快照中删除文件并进行更新时,应该从视图中删除该文件,就像我从动态视图中通过ClearCase删除它一样.实现这一目标的最佳方法是什么?
我宁愿避免大量定制我的ClearCase环境.如果有一种"标准"的方式来做到这一点,我想尝试一下.如果cleartool可以显示符合此法案的所有文件的搜索结果,那么这对我的目的来说已经足够了.
我正在尝试修复jQuery UI小部件上的一个非常奇怪的javascript行为.IE7(win XP),jQuery 1.2.6(是的,它是旧版本).
小部件是一个组合框,它捕获键盘事件并具有箭头键的特殊行为.
当我尝试在弹性框输入字段中键入"&"字符时,我会遇到奇怪的行为.
flexbox有一些代码,如:
//initialization
$myInputElement.keypress($.flexbox.process_key);
$.flexbox.process_key = function process_key(e) {
$.flexbox.flexboxFromInput(this).processKey(e);
return true;
};
//on the flexbox object's prototype:
...
processKey: function processKey(e) {
var mod = 0;
if (typeof (e.ctrlKey) !== 'undefined') {
if (e.ctrlKey) mod |= 1;
if (e.shiftKey) mod |= 2;
} else {
if (e.modifiers & Event.CONTROL_MASK) mod |= 1;
if (e.modifiers & Event.SHIFT_MASK) mod |= 2;
}
...
switch (e.keyCode) {
case 38: // up
this.prevResult();
break;
case 40: // down …Run Code Online (Sandbox Code Playgroud) 我们的java应用程序使用ical4j生成ICalendar文件,并将它们作为HTML电子邮件通知的一部分发送给用户.几个用户(会议的组织者)报告会议的"接受","拒绝"等按钮显示为灰色,并且不可点击.会议未添加到组织者的日历中.
如何强制为管理器添加会议?
我暂时配置服务器以将.ics文件作为附件(而不是内联)发送,以便我可以通过基于Web的ICalendar验证器运行它.验证器给了我一个警告,说明Version属性应该是第一个属性,但没有发现任何其他问题.
除了组织者之外,ICalendar通常适用于每个用户.
我能够在自己的Outlook帐户上重现该问题.我注意到,如果我通过gmail邮件服务器发送会议通知,它会正常工作; 但是,当它来自我们的内部Outlook服务器时,它不会被添加到日历中.
灰显的会议控件下方会显示一条消息:"作为会议组织者,您无需回复此会议."
我们的系统生成的示例ICalendar文件:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//MyCompany//Product//EN
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTAMP:20101202T210423Z
UID:77B17E9B-BE02-476E-816B-ED9558EE7D2A
DTSTART:20101230T133000
DTEND:20101230T143000
SUMMARY:Review Meeting for A1 CI Review #123456
LOCATION:BLDG - 123
CREATED:20101202T210423Z
LAST-MODIFIED:20101202T210423Z
TZID:America/New_York
ORGANIZER;CN="ORGANIZER, THE";SENT-BY="mailto:noemail@mycompany.com":mailto:myemail@mycompany.com
ATTENDEE;ROLE=REQ-PARTICIPANT;CN="ATTENDEE, SOME":mailto:noemail@mycompany.com
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试将会议组织者添加为"可选"参与者.没有骰子; 同样的行为.
再次编辑这个问题以反映我在这个问题上的进展.
我无法连接到使用 nginx ingress 运行的应用程序(Docker Desktop win 10)。
nginx-ingress 控制器 pod 正在运行,应用程序运行良好,我已经创建了一个入口。但是,当我尝试在本地主机上连接到我的应用程序时,出现“连接被拒绝”。
我在日志中看到这个错误:
[14:13:13.028][VpnKit ][Info ] vpnkit.exe: Connected Ethernet interface f6:16:36:bc:f9:c6
[14:13:13.028][VpnKit ][Info ] vpnkit.exe: UDP interface connected on 10.96.181.150
[14:13:22.320][GoBackendProcess ][Info ] Adding vpnkit-k8s-controller tcp forward from 0.0.0.0:80 to 10.96.47.183:80
[14:13:22.323][ApiProxy ][Error ] time="2019-12-09T14:13:22-05:00" msg="Port 443 for service ingress-nginx is already opened by another service"
Run Code Online (Sandbox Code Playgroud)
我认为端口 443 被另一个应用程序使用,可能是 zscaler security 或 Skype。摘自netstat -a -b:
[svchost.exe]
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 16012
[com.docker.backend.exe]
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 8220
Run Code Online (Sandbox Code Playgroud)
我不知道如何使入口工作。请帮忙!
我的入口: …
当我尝试在我的Google Wave小工具中调用wave.getState()时,我返回null(没有状态对象).如何初始化Wave状态对象?我在Wave Sandbox工作.
我的ModulePrefs包含以下内容:
<Require feature="wave" />
<Require feature="rpc"/>
Run Code Online (Sandbox Code Playgroud)
我在搜索修复程序时从一些谷歌小组发布了"rpc"功能,但它似乎没有任何帮助.
小工具包含一个jQuery插件,它定义了我使用的类(未显示),将事件处理程序附加到以编辑模式显示的链接,并使用google wave小工具初始化程序设置回调方法:
$.fn.extend({
$.gork.InitPass.newButtonClick = function newButtonClick() {
var jer = new $.gork.InitPass.Player('Jeremias', 12, 2);
var delta = {};
delta[jer.name] = jer.serialize();
wave.getState().submitDelta(delta);
};
$.gork.InitPass.modeCallback = function modeCallback() {
var state = wave.getState();
var mode = wave.getMode();
$.gork.InitPass.getContainer().ipCombatState(state, (mode == wave.Mode.EDIT));
};
$.gork.InitPass.stateCallback = function stateCallback() {
$.gork.InitPass.getContainer().ipCombatState(
wave.getState(), (wave.getMode() == wave.Mode.EDIT));
alert('state');
};
$.gork.InitPass.init = function init() {
if (wave && wave.isInWaveContainer()) {
var mode = wave.getMode();
$('.gork-ip-container').ipCombatState(null, (mode …Run Code Online (Sandbox Code Playgroud) 我是Docker的新手,我正在尝试运行默认的tomcat映像.我看到容器正在运行,但当我尝试从我的Web浏览器中点击它时,我得到"CONNECTION REFUSED".
这里发生了什么?
细节
我在Windows 7 PC上安装了Docker Toolbox.我从较旧版本的boot2docker迁移了我的boot2docker VM.(它没有太多内容......只是"你好世界"的形象.)
在Docker Quickstart终端中,我能够使用以下命令启动我的新tomcat容器:
docker run -i -p 8080:8080 --rm tomcat:8-jre8
Run Code Online (Sandbox Code Playgroud)
我能够使用以下命令验证tomcat已启动并正在运行:
docker ps
docker exec -i <containerId> bash
Run Code Online (Sandbox Code Playgroud)
然后,在bash shell中:
curl localhost:8080
Run Code Online (Sandbox Code Playgroud)
从这个卷曲,我得到了预期的HTML响应.
但是,如果我直接从Docker Quickstart终端运行curl命令:
curl localhost:8080
Run Code Online (Sandbox Code Playgroud)
......我得到"拒绝连接".
现在这里有些令人费解......如果我跑了
boot2docker ip
Run Code Online (Sandbox Code Playgroud)
...它给我一个"boot2docker-vm"没有运行的错误.当boot2docker VM关闭时,我的容器如何运行?这里有一些我真的不明白的事情.
如果我运行"boot2docker up",我可以获得一个IP地址,但我仍然无法从该IP地址访问tomcat.
我有一些看起来像的代码:
class Parent {
private Intermediate intermediateContainer;
public Intermediate getIntermediate();
}
class Intermediate {
private Child child;
public Child getChild() {...}
public void intermediateOp();
}
class Child {
public void something();
public void somethingElse();
}
class Client {
private Parent parent;
public void something() {
parent.getIntermediate().getChild().something();
}
public void somethingElse() {
parent.getIntermediate().getChild().somethingElse();
}
public void intermediate() {
parent.getIntermediate().intermediateOp();
}
}
Run Code Online (Sandbox Code Playgroud)
我明白这是"功能羡慕"代码气味的一个例子.问题是,解决它的最佳方法是什么?我的第一直觉是将这三种方法放在父母身上:
parent.something();
parent.somethingElse();
parent.intermediateOp();
Run Code Online (Sandbox Code Playgroud)
...但我觉得这个重复代码,并且混乱了Parent类的API(已经很忙).
我是否要存储getIntermediate()和/或getChild()的结果,并保留自己对这些对象的引用?
java ×3
docker ×2
hibernate ×2
javascript ×2
jquery ×2
boot2docker ×1
caching ×1
clearcase ×1
criteria ×1
delete-file ×1
eclipse ×1
ehcache ×1
getstate ×1
google-wave ×1
ical4j ×1
icalendar ×1
keycode ×1
keypress ×1
kubernetes ×1
maven-2 ×1
null ×1
oop ×1
outlook ×1
outlook-2007 ×1
refactoring ×1
terracotta ×1
tomcat ×1