这是由Maven 2.2.1生成的依赖树
mvn -o dependency:tree -Dverbose -Dincludes=log4j
[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.openboxes.renderingservice:common:jar:1.0
[INFO] +- org.springframework:spring:jar:2.0.4:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1:compile
[INFO] | \- log4j:log4j:jar:1.2.12:compile
[INFO] \- it.mycompany.portal:server:jar:1.5-SNAPSHOT:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.1.0:compile
[INFO] \- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.12)
Run Code Online (Sandbox Code Playgroud)
正如您所见,log4j v1.2.12优于v1.2.13.
我知道"Maven通过最近赢的策略解决版本冲突"(参见http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html)但这两个依赖关系似乎是在相同的距离(两个嵌套级别,我错了?)所以我希望使用最新的.
有人可以解释这个结果吗?
是的,log4j没有在这个POM中显式声明(我认为它应该是),但我想更好地理解Maven的工作方式.
谢谢
我正在尝试首次使用这个Sonatype Eclipse插件来处理我可以使用maven从命令行构建的现有(巨大)软件.
我已经将插件配置为使用我的maven 2.2.1安装而不是内置的Maven 3.
在Eclipse中,我有25个项目(通过root pom.xml加载),其中4个有编译错误; maven控制台包含很多像这样的行:
缺少工件commons-logging:commons-logging:jar:1.0.4:compile
我在我的存储库中有所有jar,并正确定义了M2_REPO类路径变量.为什么插件没有看到所有的罐子?
这些项目的.classpath文件只引用"MAVEN2_CLASSPATH_CONTAINER",没有jar列表.Eclipse中的pom.xml在丢失的jar的第一行显示错误,但我可以从命令行构建!
任何的想法?我需要帮助!如果我不解决这个问题,我会尝试迁移到NetBeans.
谢谢.
我希望能够使用gmailR包通过内联电子邮件(而不是附件)发送R生成的HTML报告.我甚至无法使用发送基本的HTML电子邮件gmailr.我尝试了下面的失败并需要一些帮助:
library(gmailr)
gmail_auth("oauth.token.json", scope = "compose")
test_email <- mime() %>%
to("you@gmail.com") %>%
from("me@gmail.com") %>%
subject("This is a subject")
test_email$body <- "I wish <b>this</b> was bold"
send_message(test_email)
Run Code Online (Sandbox Code Playgroud)
结果:消息成功发送,但正文是纯文本 - 而不是HTML
尝试2
test_email <- mime() %>%
to("you@gmail.com") %>%
from("me@gmail.com") %>%
subject("This is a subject") %>%
html_body("I wish <b>this</b> was bold")
test_email$body
Run Code Online (Sandbox Code Playgroud)
结果:test_email $ body为NULL
尝试3
test_email <- mime() %>%
to("you@gmail.com") %>%
from("me@gmail.com") %>%
subject("This is a subject")
test_email$body <- html_body("I wish <b>this</b> was bold")
Run Code Online (Sandbox Code Playgroud)
结果:mime $ parts中的错误:$ operator对原子向量无效
尝试4
test_email …Run Code Online (Sandbox Code Playgroud) 对于我工作的一些项目,我最近从Jersey 1换到了Jersey 2.我遇到过泽西2号的最大烦恼是它使用的是HK2,由于某种原因重新打包标准的Maven文物.为了避免潜在的讨厌调试问题,我尽量避免从不同的项目中引入相同的类.我使用Extra Enforcer规则依赖项中的Ban Duplicate Classes Maven强制执行规则来破坏构建(如果发生这种情况).
根据前面提到的Ban Duplicate Classes enforcer规则,切换到Jersey 2会在其工件和我之前使用的标准工件之间引入以下冲突:
hk2 Artifact Conflicting Artifact
org.glassfish.hk2.external:aopalliance-repackaged:2.3.0-b07 aopalliance:aopalliance:1.0
org.glassfish.hk2.external:bean-validator:2.3.0-b07 com.fasterxml:classmate:0.8.0 (used by org.hibernate:hibernate-validator:5.0.0.Final)
org.glassfish.hk2.external:bean-validator:2.3.0-b07 javax.validation:validation-api:1.1.0.Final
org.glassfish.hk2.external:bean-validator:2.3.0-b07 org.hibernate:hibernate-validator:5.0.0.Final
org.glassfish.hk2.external:bean-validator:2.3.0-b07 org.jboss.logging:jboss-logging:3.1.0.GA
org.glassfish.hk2.external:javax.inject:2.3.0-b07 javax.inject:javax.inject:1
Run Code Online (Sandbox Code Playgroud)
我的解决方案是将标准工件从可传递的依赖项中排除,因此只使用hk2工件.我认为这更安全:我不知道hk2工件还有什么东西可能会丢失,如果我要排除它们(例如,bean-validator工件似乎重新打包至少四个工件).这样做的缺点是,首先,我对我的依赖项进行了大量的排除,这些依赖项带来了其他无关紧要的API依赖项,例如validation-api.其次,我的工件现在正在导出HK2重新打包的依赖项,而不是我希望导出的实际API类.
最终,我的问题是:
除了这些问题的实际答案之外,联系HK2背后的开发人员会有什么好的论坛,所以我可以直接提出这个问题?我查看了网站,虽然我找到了一些邮件列表,但我没有看到任何明显适合提问的问题.
我是jboss服务器的新手.当我尝试在服务器上部署.war文件时,以下异常在控制台上打印:
6:38:04,388 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0348: Timeout after [300] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'add' at address '[
("core-service" => "management"),
("management-interface" => "http-interface")
]'
16:38:05,642 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) WFLYJCA0019: Stopped Driver service with driver-name = Aerobay.war_com.mysql.jdbc.Driver_5_1
16:38:09,548 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0190: Step handler org.jboss.as.server.DeployerChainAddHandler$FinalRuntimeStepHandler@5f88823f for operation {"operation" => "add-deployer-chains","address" => []} at address [] failed handling operation rollback -- …Run Code Online (Sandbox Code Playgroud) 我正在使用mysqli_fetch_array并且计数是正确的,直到我更改为fetch(),现在只返回总行数而不是返回每行的每个数字.
所以对于第一行,我想回显"1",依此类推.
新注意:while语句中的所有其他内容都返回正确的值,但计数器返回总行数,而我想要按照从sql语句中选择的顺序排序.
按照要求.这是我的联系.
我不知道我是否想要检查"$ e-> getMessage();" 因为我在所有查询中使用此连接,所以在每个查询上.
try {
$dbh = new PDO('mysql:host=localhost;dbname=my_db;charset=utf8', 'usr', 'pwd',
array(PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);
} catch (PDOException $e){
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
这很有效
$query = mysqli_query($con, 'SELECT * FROM music');
$count = 0;
while($row = mysqli_fetch_array($query)){
$count++;
echo $count;
}
Run Code Online (Sandbox Code Playgroud)
新的不起作用.
$query = $dbh->query('SELECT * FROM music');
$count = 0;
while($row = $query->fetch()){
$count++;
echo $count;
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个MongoDB聚合管道,我在这个阶段陷入困境:
$group: {
_id: {checkType: "$_id.checkType", resultCode: "$_id.resultCode"},
count: { $sum: "$count" },
ctv: { $sum: "$ctv" },
perc:{$multiply:[{$divide:["$ctv","$count"]},100]},
weight: { $divide: [ "$ctv", "$count"] },
details: { $push: "$$ROOT" }
}
Run Code Online (Sandbox Code Playgroud)
它给出错误"$ multiply accumulator是一元运算符".类似地,如果我用$ multiply删除该行,则在后续行中得到"$ divide accumulator是一元运算符".我在网上找不到这个错误的描述.我的sintax有什么问题?
很长一段时间后,我在JBoss 7.1.1下远程访问了无状态EJB.使用Properties对象:
Properties jndiProps = new Properties();
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.naming.remote.client.InitialContextFactory");
jndiProps.put(Context.PROVIDER_URL,"remote://localhost:4447");
jndiProps.put(Context.SECURITY_PRINCIPAL, "remote");
jndiProps.put(Context.SECURITY_CREDENTIALS, "remotepwd");
jndiProps.put("jboss.naming.client.ejb.context", true);
Context ctx = new InitialContext(jndiProps);
String lookupString = "//HelloWorld/HelloWorldBean!org.acme.test.HelloWorld";
HelloWorld hw = (HelloWorld) ctx.lookup(lookupString);
System.out.println("Response: "+ hw.sayHello("Hi there"));
Run Code Online (Sandbox Code Playgroud)
所以这很好但现在我想把JNDI的东西放到jndi.properties文件中但是失败了,这就是文件的样子:
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
java.naming.provider.url=remote://localhost:4447
java.naming.security.principal=remote
java.naming.security.credentials=remotepwd
Run Code Online (Sandbox Code Playgroud)
例外:
Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorld,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@108c175
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
at de.brockhaus.test.client.TestClient.main(TestClient.java:35)
Run Code Online (Sandbox Code Playgroud)
我已经经历过几个doco但是失败了,那么它怎么样呢?
在带有 Lombok 的 Spring boot 应用程序中,我有 pojo 类 AccountDTO
@Data
@Builder
@Accessors(fluent = true)
public class AccountDTO implements Serializable {
private String identification;
}
Run Code Online (Sandbox Code Playgroud)
我的项目编译得很好。但是,它在执行过程中抛出异常
com.fasterxml.jackson.databind.exc.InvalidDefinitionException:找不到类 AccountDTO 的序列化程序,也没有发现用于创建 BeanSerializer 的属性
如果我删除注释@Accessors(fluent = true),那么它将正常工作,没有任何问题。
我怎样才能一起制作Lombok @Accessors(fluent = true)和Jackson工作?