我有一个Dockerfile试图将Web应用程序打包并部署到容器中.在Docker镜像构建期间,应用程序的代码从git存储库中获取.这是Dockerfile快照:
........
RUN git clone --depth=1 git-repository-url $GIT_HOME/
RUN mvn package -Dmaven.test.skip
........
Run Code Online (Sandbox Code Playgroud)
我希望docker不要缓存步骤,RUN git clone --depth=1 git-repository-url $GIT_HOME/以便可以在Docker镜像构建上反映存储库上正在进行的更新.是否有可能实现这一目标?
我使用Jersey版本1.18.1(com.sun.jersey),Spring和Java 8.如果我在REST服务中放置Java 8 Lambda表达式,它会崩溃.如果我删除lambda表达式,它的工作原理.
@Service
@Path("/hello")
public class Hello {
@GET
public String hello() {
new ArrayList<String>().stream().filter((str) -> str.length() > 0);
return "hello";
}
}
Run Code Online (Sandbox Code Playgroud)
我使用com.sun.jersey(1.18.1版本).
完整的堆栈跟踪:
SEVERE: Allocate exception for servlet jersey-serlvet java.lang.ArrayIndexOutOfBoundsException: 52264
at jersey.repackaged.org.objectweb.asm.ClassReader.readClass(ClassReader.java:1976)
at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:464)
at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:420)
at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86)
at com.sun.jersey.core.util.Closing.f(Closing.java:71)
Run Code Online (Sandbox Code Playgroud)
请告诉我如何解决它.
我是Hadoop和生态系统的新手.我正在用Java中的JDBC尝试Hive.这是我的简单代码,仅用于测试驱动程序:
import java.sql.DriverManager;
import java.sql.SQLException;
public class PrepareHiveTable {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName(driverName);
Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
}
}
Run Code Online (Sandbox Code Playgroud)
我已导入org.apache.hive.jdbc.HiveDriver到类路径中,这是我的驱动程序列表DriverManager:
org.apache.calcite.avatica.remote.Driver@45ff54e6
org.apache.calcite.jdbc.Driver@3581c5f3
org.apache.derby.jdbc.AutoloadedDriver40@4f8e5cde
com.mysql.jdbc.Driver@6f75e721
org.apache.hive.jdbc.HiveDriver@69222c14
Run Code Online (Sandbox Code Playgroud)
但是,当我运行代码时,我收到此错误:
Exception in thread "main" java.sql.SQLException: No suitable driver found for
jdbc:hive://localhost:10000/default
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at PrepareHiveTable.main(PrepareHiveTable.java:24)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
这里的任何人都知道它怎么会发生?以及如何解决?
在JLS 8的第8.4.8.1节中,有一个声明:
在某些参数化中,通用超类C中的具体方法可以与该类中的抽象方法具有相同的签名.在这种情况下,具体方法是继承的,而抽象方法则不是.然后应该考虑继承的方法从C覆盖它的抽象对等体.
任何人都可以为泛型类提供这种参数化的例子吗?我无法做到.
我收到有关 typesafe.play 的类似错误。我已将 scalaVersion := "2.11.7" 添加到我的 build.sbt 文件中,但仍然看到相同的错误。
生成.sbt
version := "1.0-SNAPSHOT"
lazy val root = (project in file("."))
.enablePlugins(PlayJava, PlayEbean)
.dependsOn(celsus)
.aggregate(celsus)
lazy val celsus = (project in file("libs/celsus"))
.enablePlugins(PlayJava)
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
"com.amazonaws" % "aws-java-sdk" % "1.3.11"
)
Run Code Online (Sandbox Code Playgroud)
插件.sbt
resolvers += "Typesafe repository" at http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.4")
Run Code Online (Sandbox Code Playgroud)
收到错误
Error:Error while importing SBT project:
...
[trace] Stack trace suppressed: run 'last root/:ssExtractDependencies' for the full output. [error] (celsus/:update) sbt.ResolveException: …Run Code Online (Sandbox Code Playgroud) 在这个程序中,我必须一次又一次地在循环中输入温度.当我输入温度一旦它显示正确的显示,但当我再次输入温度时,程序自行终止.
代码是:
import java.util.Scanner;
public class CheckTemperature
{
public static void main(String [] args)
{
final double TEMPERATURE = 102.5;
double thermostat;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the substance's temperature: ");
thermostat = keyboard.nextDouble();
if(thermostat > TEMPERATURE)
{
System.out.print("The temperature is too high. ");
System.out.print("Turn down the thermostat. ");
System.out.println("Wait for 5 minutes and check the thermostat again. ");
System.out.println("Enter the thermostat here: ");
thermostat = keyboard.nextDouble();
}
else if(thermostat < TEMPERATURE)
{
System.out.println("The temperature is low.");
System.out.println("Turn up …Run Code Online (Sandbox Code Playgroud) 当通过Eclipse将Web应用程序部署到Tomcat时,Eclipse会覆盖$ catalina_home/conf/server.xml.这意味着,在应用程序部署之前我对server.xml所做的任何更改都会被Eclipse覆盖.
我的应用程序使用GridGain,因此我需要将以下行添加到server.xml:
<Listener className="org.gridgain.grid.loaders.tomcat.GridTomcatLoader" configurationFile="config/default-spring.xml"/>
Run Code Online (Sandbox Code Playgroud)
由于Eclipse每次部署新版本的应用程序时都会覆盖server.xml,因此我需要指示Eclipse在部署期间插入上述行(这适用于所有tomcat事件侦听器).这可能吗?如果没有,是否有基于GridGain的应用程序通过Eclipse部署的解决方法?
我正在为spring程序编写代码,我需要将File对象转换为MultipartFile对象.我试图通过使用MockMultipartFile类来做到这一点:
FileInputStream input = new FileInputStream(toUpload);
MultipartFile multipartFile = new MockMultipartFile("file",
toUpload.getName(), "text/json", IOUtils.toByteArray(input));
Run Code Online (Sandbox Code Playgroud)
但是,我一直在收到错误MockMultipartFile cannot be resolved to a type.为什么是这样?如果它有帮助,我正在使用Maven,以防它可能是我不知道的依赖性错误.
我也尝试过这样做CommonsMultipartFile.那个代码在这里(toUpload是File我试图转换的对象):
DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, toUpload.getName(), (int) toUpload.length() , toUpload.getParentFile());
fileItem.getOutputStream();
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
Run Code Online (Sandbox Code Playgroud)
当我尝试这种方法时,我得到了错误The constructor CommonsMultipartFile(DiskFileItem) is undefined.这是为什么?
编辑:这是我们的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-uploading-files</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
</parent>
<dependencies> …Run Code Online (Sandbox Code Playgroud) 我创建了一个包含两个类的java程序.一个类(Main)包含传递到第二个类(Planning)的数据数组.第二个类(Planning)使用此数组为其变量的输入和输出赋值.代码如下所示:
////Main.java///
import java.util.ArrayList
public class Main{
public enum State{A, D, H};
Planning plan = new Planning[]{
new Plan(new State[]{State.A,State.A,State.A,State.A}, new State[]{State.D,State.A,State.A,State.D,State.A,State.A})}
Run Code Online (Sandbox Code Playgroud)
另一个Class Planning.java看起来像这样:
public class Planning {
Main.State[] input;
Main.State[] output;
Planning(Main.State[] input,Main.State[] output){
this.input = input;
this.output = output;
System.out.println("The state is " + input);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我打印出"结尾处的输入"时,它会显示出来
[LMain $国家; @ 4e98f805
我希望它显示从main函数传递到它的数组.有人可以告诉我如何实现这一目标?