小编rap*_*apt的帖子

java.lang.ClassNotFoundException如果我使用hibernate-core 3.6.0或hibernate-core 4.1.0

我该如何解决以下冲突?

  • 如果我使用的是hibernate-core 3.6.0.Final

我得到一个例外:

Caused by: java.lang.ClassNotFoundException: org.hibernate.context.spi.CurrentSessionContext
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
Run Code Online (Sandbox Code Playgroud)
  • 如果我使用的是hibernate-core 4.1.0.Final

我得到一个例外:

Caused by: java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
    at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:324)
Run Code Online (Sandbox Code Playgroud)

我的项目的依赖性:

my.project:jsf-spring-security:war:1.0.0
+- org.slf4j:slf4j-log4j12:jar:1.6.4:compile
|  +- (org.slf4j:slf4j-api:jar:1.6.4:compile - omitted for duplicate)
|  \- (log4j:log4j:jar:1.2.16:compile - omitted for duplicate)
+- org.slf4j:slf4j-api:jar:1.6.4:compile
+- org.springframework:spring-core:jar:3.1.1.RELEASE:compile
|  +- org.springframework:spring-asm:jar:3.1.1.RELEASE:compile
|  \- commons-logging:commons-logging:jar:1.1.1:compile
+- org.springframework.ldap:spring-ldap:jar:all:1.3.1.RELEASE:compile
|  \- (org.springframework:spring-core:jar:3.0.5.RELEASE:compile - omitted for conflict with 3.1.1.RELEASE)
+- org.springframework:spring-webmvc:jar:3.1.1.RELEASE:compile
|  +- (org.springframework:spring-asm:jar:3.1.1.RELEASE:compile - omitted for duplicate)
|  +- org.springframework:spring-beans:jar:3.1.1.RELEASE:compile
|  |  \- (org.springframework:spring-core:jar:3.1.1.RELEASE:compile - omitted for duplicate) …
Run Code Online (Sandbox Code Playgroud)

jsf spring dependencies hibernate maven

2
推荐指数
1
解决办法
1万
查看次数

如何设置java.util.Date的fastTime?

这与如何设置java.util.Date的时区有关?

我试图在eclipse调试器中设置值

private transient long fastTime;
Run Code Online (Sandbox Code Playgroud)

在一个java.util.Date.

我想在2010年1月1日的某个时间设置日期,该日期基于http://www.epochconverter.com是值(以毫秒为单位)1262362075000.

这个字段应该是long类型的但是当我尝试设置这个字段时(fastTime)我被eclipse告知这个值对于字段来说太大了.

我究竟做错了什么?

在此输入图像描述

java eclipse debugging

2
推荐指数
1
解决办法
6238
查看次数

Scala 不从资源文件夹中读取文件

为什么下面没有war-and-peace.txtresources文件夹中读取文件?

我的项目中的文件夹结构是使用 Intellij 创建的标准 Scala 结构。

出于某种原因,它仅在我将它放入src/main/scala(即我的 Scala 代码所在的位置)时才读取该文件,但是当我将它放入src/main/resources(在后一种情况下我得到java.lang.NullPointerException,顺便说一句,我也得到相同的异常时忽略该文件当我尝试阅读"/war-and-peace.txt"(带有前面的斜线)以防您想提出建议时)。

val file = new File(classLoader.getResource("war-and-peace.txt").getFile())

Source.fromFile(file).....
Run Code Online (Sandbox Code Playgroud)

我在用

java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
Run Code Online (Sandbox Code Playgroud)

构建.sbt:

name := "my-project"

version := "1.0"

scalaVersion := "2.11.8"

resourceDirectory in Compile := baseDirectory.value / "resources"

libraryDependencies += "junit" % "junit" % "4.12"

libraryDependencies += "org.scalatest" % "scalatest_2.11" % "2.2.4"
Run Code Online (Sandbox Code Playgroud)

scala sbt intellij-15

2
推荐指数
1
解决办法
7476
查看次数

构造函数字节码

ASM引导谈到构造函数:

package pkg;
public class Bean {
  private int f;
  public int getF() {
      return this.f;
  }
  public void setF(int f) {
      this.f = f;
  }
}
Run Code Online (Sandbox Code Playgroud)

Bean类还具有由编译器生成的默认公共构造函数,因为程序员没有定义任何显式构造函数。此默认的公共构造函数生成为 Bean() { super(); }。该构造函数的字节码如下:

ALOAD 0
INVOKESPECIAL java/lang/Object <init> ()V
RETURN
Run Code Online (Sandbox Code Playgroud)

第一条指令压this入操作数堆栈。第二条指令从堆栈中弹出该值,并调用类中<init> 定义的方法Object。这对应于super() 调用,即对超类的构造函数的调用Object。您可以在此处看到,在编译类和源类中,构造函数的名称不同:在编译类中,它们总是命名为<init>,而在源类中,它们具有定义它们的类的名称。最后,最后一条指令返回给调用者。

this在构造函数的第一条指令之前,JVM已知的值如何?

java bytecode-manipulation java-bytecode-asm jvm-bytecode

2
推荐指数
1
解决办法
580
查看次数

未解决的依赖项 — com.typesafe.play#sbt-plugin;2.4.3:未找到

我正在尝试在 Intellij 中构建 Play/Scala 项目。但有些依赖项没有找到。

我究竟做错了什么?

我已将 Intellij 设置为使用 Scala 2.11.8,但输出可能意味着使用了不同的版本(?)。

我尝试过以前类似问题的想法,但没有帮助:

SBT 插件依赖项解析失败,并显示 com.typesafe.play#sbt-plugin;2.2.1: not found

插件.sbt

// Comment to get more information during initialization
logLevel := Level.Warn

// Resolvers
resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/"

resolvers += "Typesafe repository mvn" at "http://repo.typesafe.com/typesafe/maven-releases/"

// Sbt plugins
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3")

addSbtPlugin("com.vmunier" % "sbt-play-scalajs" % "0.2.6")

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.3")
Run Code Online (Sandbox Code Playgroud)

构建属性

sbt.version=1.1.2
Run Code Online (Sandbox Code Playgroud)

构建.sbt

lazy val scalaV = "2.11.8"

lazy val `my_project` = (project in file(".")).settings(
  scalaVersion := scalaV, …
Run Code Online (Sandbox Code Playgroud)

scala intellij-idea sbt playframework

2
推荐指数
1
解决办法
4991
查看次数

部署由maven overlay创建的war文件时的java.lang.NoClassDefFoundError

我用Maven构建了一个war文件,它使用其他war叠加作为依赖...构建成功了.

但是在部署到Jboss时我收到以下错误:

11:27:49,054 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-1) .... nested exception is java.lang.NoClassDefFoundError: org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor
        at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281) [spring-context-3.2.1.RELEASE.jar:3.2.1.RELEASE]
        at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) [spring-context-3.2.1.RELEASE.jar:3.2.1.RELEASE]
        ........
Run Code Online (Sandbox Code Playgroud)

所以我java.lang.NoClassDefFoundError上课了AnnotationMetadataReadingVisitor...基于异常,我假设该类在类路径上出现不止一次.

我已经验证org.springframework.core.type.classreading.AnnotationMetadataReadingVisitor了类路径上确实存在(在war文件中WEB-INF\lib\spring-core-3.2.1.RELEASE.jar).

但据我所知,它是我的类路径中唯一包含该类的jar.

知道我在这里缺少什么吗?

以下是WEB-INF\lib我正在尝试部署的战争的全部内容:

activemq-all-5.5.1.jar
ant-1.7.0.jar
ant-launcher-1.7.0.jar
antlr-2.7.7.jar
antlr-3.3.jar
antlr-runtime-3.3.jar
aopalliance-1.0.jar
aspectjweaver-1.7.1.jar
axiom-api-1.2.12.jar
axiom-dom-1.2.12.jar
axiom-impl-1.2.12.jar
axis2-1.6.1.jar
axis2-adb-1.6.1.jar
axis2-adb-codegen-1.6.1.jar
axis2-ant-plugin-1.6.1.jar
axis2-clustering-1.6.1.jar
axis2-codegen-1.6.1.jar
axis2-corba-1.6.1.jar
axis2-fastinfoset-1.6.1.jar
axis2-java2wsdl-1.6.1.jar
axis2-jaxbri-1.6.1.jar
axis2-jaxws-1.6.1.jar
axis2-jibx-1.6.1.jar
axis2-json-1.6.1.jar
axis2-kernel-1.6.1.jar
axis2-metadata-1.6.1.jar
axis2-mtompolicy-1.6.1.jar
axis2-saaj-1.6.1.jar
axis2-transport-http-1.6.1.jar
axis2-transport-local-1.6.1.jar
axis2-xmlbeans-1.6.1.jar
bcel-5.1.jar
blitzer-1.0.9.jar
c3p0-0.9.1.1.jar
camel-core-2.4.0.jar
camel-xstream-2.4.0.jar
cdjai-1.0.jar
commons-beanutils-1.7.0.jar
commons-cli-1.2.jar
commons-codec-1.3.jar
commons-collections-3.1.jar …
Run Code Online (Sandbox Code Playgroud)

noclassdeffounderror classloader maven-3 maven jboss7.x

0
推荐指数
1
解决办法
8977
查看次数

删除所有连续的空白行,只留下一行:perl -00 -pe''

我尝试理解以下Perl命令"删除所有连续的空行,只留下一个":

perl -00 -pe ''
Run Code Online (Sandbox Code Playgroud)

Perl One-Liners解释:

首先它没有任何代码,-e是空的.接下来它有一个愚蠢的-00命令行选项.此命令行选项打开段落啜食模式.段落是两个换行符之间的文本.所有其他新行都被忽略了.段落放在"$ _"中," - p"选项将其打印出来.

我不遵循这个解释.也许措辞不准确.

所以"A paragraph is text between two newlines."但每一行都是两个换行符之间的文本.

"All the other newlines get ignored." 但是,两个连续的换行之间没有换行符.

"The paragraph gets put in "$_" and the "-p" option prints it out."由于它是在每两个换行符之间的文本中进行的,因此将整个文件拼凑成一个长行.它看起来像这个命令应该怎么做?

它还说,另一种写它的方法是

perl -00pe0
Run Code Online (Sandbox Code Playgroud)

最右边的0代表什么?

无论如何,我实际想要实现的是删除所有连续的白线,只留下一条空行.白线我指的是一条可能不是空的行,但只有空白字符(和换行符).是否可以修改上述命令以匹配此情况?

perl

0
推荐指数
1
解决办法
307
查看次数

类型推断:泛型,"var"

我认为Java编译器(Java 11)本身可以推断出实际的泛型类型,如果我给它足够的提示,例如当泛型类型是方法参数并且我作为参数提供实际类型的实例时.

例如,我有以下类:

public class Var<T>
{
    public T value;

    public Var(T value)
    {
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试以下3次尝试,我希望所有人都能编译:

//(1) Compilation error!
Var v = new Var(0);
++v.value;

//(2) Compilation error!
Var v = new Var<Integer>(0);
++v.value;

//(3) Compiles!
Var<Integer> v = new Var(0);
++v.value;
Run Code Online (Sandbox Code Playgroud)

1)我希望(1)编译,因为通过使用Integer(或int)参数,编译器知道实际类型可能就足够了.所以++v.value;我希望编译器知道变量是一个Integer,但事实并非如此.它仍然认为它是一个Object.

2)添加一些显式信息.但编译器仍然无法理解.

3)按预期编译.

然后,我尝试使用var关键字进行类型推断:

//(4) Compilation error!
var v = new Var(0);
++v.value;

//(5) Compiles!
var v = new Var<Integer>(0);
++v.value;
Run Code Online (Sandbox Code Playgroud)

4)同样,我希望(4)编译,因为类型可以从参数中推断出来. …

java generics type-inference java-10

-1
推荐指数
1
解决办法
138
查看次数

Monad比Applicative更强大?

我查看过去的讨论,但无法理解为什么任何答案都是正确的.

合用的

<*> :: f (a -> b) -> f a -> f b

单子

(>>=) :: m a -> (a -> m b) -> m b

因此,如果我做对了,那么声称是>>=不能仅仅假设存在而写的<*>

好吧,让我们假设我有<*>.

我想创造>>=.

所以我有f a.

我有f (a -> b).

现在当你看它时,f (a -> b)可以写成(a -> b)(如果某个东西是x,y,z的函数 - 那么它也是x,y的函数).

所以从<*>我们得到的存在(a -> b) -> f a -> f b再次可以写成((a -> b) -> f a) …

monads haskell functional-programming functor applicative

-4
推荐指数
2
解决办法
310
查看次数