将Maven jFree依赖项添加到现有应用程序后,我无法执行创建的jar.
我得到的唯一错误消息如下:
java -jar target/com.company.product-1.0.0-SNAPSHOT.jar
Error: Invalid or corrupt jarfile target/com. company.product-1.0.0-SNAPSHOT.jar
Run Code Online (Sandbox Code Playgroud)
完整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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion
<groupId>com.mycompany</groupId>
<artifactId>com.mycompany.test</artifactId>
<name>${project.artifactId}</name>
<version>1.0.0-SNAPSHOT</version>
<properties>
<java-version>1.7</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.springframework.data-version>1.0.3.RELEASE</org.springframework.data-version>
<org.springframework.ws-version>2.0.4.RELEASE</org.springframework.ws-version>
<org.springframework.ws.oxm-version>1.5.10</org.springframework.ws.oxm-version>
<org.aspectj-version>1.6.12</org.aspectj-version>
<org.slf4j-version>1.5.10</org.slf4j-version>
<selenium-java-version>2.25.0</selenium-java-version>
<browser-mob-version>2.0-beta-6</browser-mob-version>
</properties>
<dependencies>
<!-- Hint A: If we delete this dependency it works -->
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.14</version>
<exclusions>
<exclusion>
<artifactId>itext</artifactId>
<groupId>com.lowagie</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>de.schlichtherle.io</groupId>
<artifactId>truezip</artifactId>
<version>6.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<version>1.1</version>
</dependency>
<!-- Caching …
Run Code Online (Sandbox Code Playgroud) 如何编辑application.properties
远程Linux服务器上现有jar文件内的属性文件(如).
试想一下,罐子位于/home/user/my-spring-boot.jar
我喜欢改变内部的用户名application.propertires
从
username=foo
Run Code Online (Sandbox Code Playgroud)
至
username=bar
Run Code Online (Sandbox Code Playgroud)
如何打开文件并更改属性?
抽象问题:每次源 Observable 发出和事件时,都需要触发一系列 API 调用和 Angular 服务。其中一些调用取决于以前的结果。
在我的示例中,源 ObservablestartUpload$
触发了一系列依赖调用。
使用解构可以这样写:
this.startUploadEvent$.pipe(
concatMap(event => this.getAuthenticationHeaders(event)),
map(({ event, headers }) => this.generateUploadId(event, headers)),
tap(({ event, headers, id }) => this.emitUploadStartEvent(id, event)),
concatMap(({ event, headers, id }) => this.createPdfDocument(event, headers, id)),
concatMap(({ event, headers, id, pdfId }) => this.uploadBilderForPdf(event, pdfId, headers, id)),
mergeMap(({ event, headers, id, pdfId, cloudId }) => this.closePdf(cloudId, event, headers, id, pdfId)),
tap(({ event, headers, id, pdfId, cloudId }) => this.emitUploadDoneEvent(id, event, cloudId)),
).subscribe()
Run Code Online (Sandbox Code Playgroud)
它几乎读起来像是一种命令式方法。但它有一些问题:
{ …
目前,某些应用仍然需要Java 8,例如:
随着brew install java
该最新安装版本.但是如何安装Java 8?
在我自己的PC上,应用程序运行良好,但当它部署到docker时,由于无效字符而失败.
我正在使用ubuntu:lastest
容器python3
,java
和ruby
.
在像这样的给定字符串中
".../uploads/${customer}/${dateTime('yyyyMMdd')}/report.pdf"
Run Code Online (Sandbox Code Playgroud)
我需要替换一个customer
和一个yyyyMMdd
时间戳.
要替换customer
占位符,我可以使用StrSubstitutor
Apache Commons.但如何更换SimpleDateFormat
?我们在Spring环境中运行,所以也许Spring EL
是一个选择?
占位符的标记不固定,如果另一个库需要语法更改,则可以.
这个小测试显示了这个问题:
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
String template = ".../uploads/${customer}/${dateTime('yyyyMMdd')}/report.pdf";
@Test
public void shouldResolvePlaceholder()
{
final Map<String, String> model = new HashMap<String, String>();
model.put("customer", "Mr. Foobar");
final String filledTemplate = StrSubstitutor.replace(this.template, model);
assertEquals(".../uploads/Mr. Foobar/" + this.formatter.format(new Date()) + "/report.pdf", filledTemplate);
}
Run Code Online (Sandbox Code Playgroud) 是否可以org.springframework.data.jpa.repository.JpaRepository
像JPAContainer
Vaadin 一样使用存储库?
我们正在从Spring开始设立一个新的Vaadin 7项目.
Spring集成是使用Spring Vaadin Integration Addon完成的.
我用一些Chapter
s 创建了一个文档.
如何为此文档生成TOC?
它应该如下所示:
TOC:
Chapter 1 3
Chapter 2 4
Chapter 3 6
Chapter 4 9
Chapter 5 10
Run Code Online (Sandbox Code Playgroud) 对于20米范围内的任何银行,我需要通过long/lat搜索Goolge Places Pages.此Google商家信息文档介绍了如何使用JavaScript.他们正在使用google.maps.LatLng
我在Java中没有的Object.
现在有人怎么称呼服务?
也许Goolge Places还有一个Java API?
最诚挚的问候,基督徒.
编辑1:
我发现有人像这样构建网址:
String url = baseUrl + "location=" + lat + "," + lon + "&" +
"radius=" + searchRadius + "&" + types + "&" + "sensor=true" +
"&" + "key=" + googleAPIKey;
Run Code Online (Sandbox Code Playgroud)
答案:编辑2:
我因为上面的帖子我发现了怎么做.这是如何发送请求的示例:
public class GooglePlacesClient
{
private static final String GOOGLE_API_KEY = "***";
private final HttpClient client = new DefaultHttpClient();
public static void main(final String[] args) throws ParseException, IOException, URISyntaxException
{
new …
Run Code Online (Sandbox Code Playgroud) 几乎所有API都处理不同的发行版本.通常你会看到这种版本:
但是我没有找到一个描述如何在Spring堆栈中组织它们的源代码.我想在每个控制器上都有一个/v1
前缀@RequestMapping("/v1/questions")
不是最好的方法.
想象一下@Service
,只有当前版本的一层(在我们的例子中是V2).
我们的服务应该处理V1和V2的请求.唯一的变化是V2在问题实体上添加了一个新字段(这意味着V1问题可以很容易地转换为V2问题).
现在的问题是:
~.web.* @Controller
java包的观点?~.web.* @Controller
他们知道他们的版本的不同?以这种方式RequestMapping
?或者是否可以使用上下文配置它们:在V1 java包中进行组件扫描?一个例子看起来像这样(我在各处添加了包):
// on V1 Question look like this:
public class project.domain.Question
{
private String question;
}
// on v2 Question looks like this:
public class project.domain.Question
{
private String question;
private Date creationDate;
}
@Service
public class project.service.QuestionService
{
public long create(Question q) {...};
public Question read(long id) {...};
public void remove(long id) …
Run Code Online (Sandbox Code Playgroud)