小编ksn*_*tum的帖子

使用Maven和Spring控制项目:如何使用Maven配置文件设置Spring配置文件?

我正在尝试根据某个Maven配置文件是否处于活动状态来配置具有数据库信息的Spring配置文件.我已经看到了这些问题的答案,但我无法将它们整合在一起.

我有一个像这样的Maven个人资料:

<profiles>
    <profile>
        <id>production</id>
        <activation>
            <property>
                <name>environment.type</name>
                <value>prod</value>
            </property>
        </activation>
    </profile>

    <profile>
        <id>development</id>
        <activation>
            <property>
                <name>environment.type</name>
                <value>dev</value>
            </property>
        </activation>

        <!-- Database properties for Spring -->
        <properties>
            <db.driver>oracle.jdbc.driver.OracleDriver</db.driver>
            <db.type>oracle</db.type>
            <db.host>192.168.0.0</db.host>
            <db.port>1521</db.port>
            <db.name>myDb</db.name>
            <db.url>jdbc:${db.type}:thin:@${db.host}:${db.port}:${db.name}</db.url>
        </properties>
Run Code Online (Sandbox Code Playgroud)

还有一个这样的settings.xml文件:

<servers>
  <server>
    <id>development</id>
    <username>jsmith</username>
    <password>secret</password>
  </server>
</servers>

....

<profiles>
  <profile>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>

    <properties>
      <environment.type>dev</environment.type>
    </properties>
  </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

在servlet-context.xml中:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
    <property name="driverClassName">
        <value>${db.driver}</value>
    </property>

    <property name="url">
        <value>${db.url}</value>
    </property>

    <property name="username">
        <value>${db.username}</value>
    </property>

    <property name="password">
        <value>${db.password}</value>
    </property>

    <property name="maxActive">
        <value>10</value>
    </property>

    <property name="maxIdle"> …
Run Code Online (Sandbox Code Playgroud)

java spring configuration-files maven

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

将CSS文件应用于JavaFX WebView

我正在尝试将CS​​S文件应用于JavaFX WebView对象.从我所读到的,这应该可以解决问题,但显然我错过了一些东西,因为WebView显示没有任何样式.

package net.snortum.play;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebviewCssPlay extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("CSS Styling Test");
        stage.setWidth(300);
        stage.setHeight(200);

        WebView browser = new WebView();
        WebEngine webEngine = browser.getEngine();
        webEngine.loadContent("<html><body><h1>Hello!</h1>This is a <b>test</b></body></html>");

        VBox root = new VBox(); 
        root.getChildren().addAll(browser);
        root.getStyleClass().add("browser");
        Scene scene = new Scene(root);
        stage.setScene(scene);
        scene.getStylesheets().add("/net/snortum/play/web_view.css");
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的CSS文件如下所示:

.browser {
    -fx-background-color: #00ff80;
    -fx-font-family: Arial, Helvetica, san-serif; …
Run Code Online (Sandbox Code Playgroud)

css javafx webview

9
推荐指数
2
解决办法
8389
查看次数

Java,Maven:构建期间出现SLF4J错误

我正在研究Java项目并使用Maven(m2e)构建它.当我这样做时,我mvn clean install首先得到这个错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)

首先是日志记录看起来很好(这是非常基本的).但是我不喜欢构建中的错误所以我遵循了URL.它基本上说类可以在几个包中的一个中找到,所以我添加slf4j-simple到我的依赖项中.我不知道使用哪个版本,所以我得到了最新版本(1.7.1).错误没有消失.

似乎我的一个依赖项(JXL)需要log4j1.2.14版本,这就是需要的东西slf4j.我不认为我可以改变这个(我可以吗?).我的想法是,可能slf4j是错误的版本,但我不知道如何找出log4j需要的版本.

首先,我是否有问题?第二,即使我不这样做,有没有办法摆脱警告?

这是输出mvn dependency:tree:

[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ dpt ---
[INFO] com.nike.dpt:dpt:war:1.3-SNAPSHOT
[INFO] +- javax.servlet:jsp-api:jar:2.0:provided
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- javax.servlet:jstl:jar:1.2:runtime
[INFO] +- net.sourceforge.jexcelapi:jxl:jar:2.6.12:compile
[INFO] |  \- log4j:log4j:jar:1.2.14:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] |  \- commons-pool:commons-pool:jar:1.5.4:compile
[INFO] +- org.springframework:spring-core:jar:3.1.2.RELEASE:compile
[INFO] |  +- org.springframework:spring-asm:jar:3.1.2.RELEASE:compile …
Run Code Online (Sandbox Code Playgroud)

java dependencies log4j slf4j maven

6
推荐指数
1
解决办法
3859
查看次数

通过"参考价值"?需要一些澄清

我知道在Java中,一切都是通过价值传递的.但对于对象,它是传递的对象的引用值.这意味着有时候一个对象可以通过参数进行更改,这就是为什么人们说,永远不要修改参数.

但在下面的代码中,会发生一些不同的事情. 当你回到时,sin changeIt()不会改变main():

public class TestClass {

    static String str = "Hello World";

    public static void changeIt( String s ) {
        s = "Good bye world";
    }

    public static void main( String[] args ) {
        changeIt( str );
        System.out.println( str );
    }
}
Run Code Online (Sandbox Code Playgroud)

我猜 - 我想要确认 - 当你说它s = "something"是相同或相当于说String s = new String("something").这是为什么s不改变?它是否在本地分配了一个全新的对象,一旦退出就会被丢弃changeIt()

java

5
推荐指数
1
解决办法
129
查看次数

从Maven Tomcat插件运行war文件 - 是使用错误文件的插件吗?

我正在使用Vaadin开发一个Web应用程序并对其进行配置,以便它将在开发,登台和生产设置中运行.我的问题是我无法获取Tomcat7 Maven插件来运行我的war文件.战争档案很好 - 我用编辑检查了它.我在spring-context.xml(我称之为applicationContext.xml)中使用占位符来代替数据库信息.我使用Maven资源过滤来替换占位符和真实数据.这适用于war文件.

但是,当我尝试使用Tomcat7 Maven插件运行时,我收到以下错误(我遗漏了清理和测试消息):

[INFO] 
[INFO] --- gwt-maven-plugin:2.4.0:compile (default) @ dpt ---
[INFO] auto discovered modules [com.catalystitservices.nike.dpt.widgetset.DptWidgetset]
[INFO] com.catalystitservices.nike.dpt.widgetset.DptWidgetset is up to date. GWT compilation skipped
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ dpt ---
[INFO] Packaging webapp
[INFO] Assembling webapp [dpt] in [C:\Projects\DPT\target\dpt]
[INFO] Processing war project
[INFO] Copying webapp webResources [C:\Projects\DPT\src/main/webapp/] to [C:\Projects\DPT\target\dpt]
[INFO] Copying webapp resources [C:\Projects\DPT\src\main\webapp]
[INFO] Webapp assembled in [1407 msecs]
[INFO] Building war: C:\Projects\DPT\target\dpt.war
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ dpt ---
[INFO] …
Run Code Online (Sandbox Code Playgroud)

tomcat war vaadin maven

5
推荐指数
1
解决办法
6558
查看次数

构建可以由Maven Tomcat插件部署的war文件

这在技术上不是一个编程问题,而是一个关于从Maven项目部署war文件时遇到的错误的问题.

我在构建war文件,运行Tomcat7并打开浏览器后得到的错误是:

HTTP Status 404 - /vaadin-test/

type Status report

message /vaadin-test/

description The requested resource (/vaadin-test/) is not available.
Run Code Online (Sandbox Code Playgroud)

我使用Vaadin作为我的网络应用平台.我有一个非常简单的项目,我正在尝试运行测试.我使用的是tomcat7-maven-pluginmaven-war-plugin我的POM文件.war插件配置看起来像这样(我认为我甚至不需要过滤):

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>

            <configuration>
                <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
                <warName>vaadin-test</warName>

                <webResources>
                    <resource>
                        <directory>src/main/webapp/</directory>
                        <filtering>true</filtering>

                        <includes>
                            <include>**/*.xml</include>
                        </includes>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

web.xml看起来像这样:

<servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>

    <init-param>
        <param-name>application</param-name>
        <param-value>com.catalystitservices.vaadin.TestApp</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>/test-app</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

无论我是否尝试mvn tomcat7:run将创建的war文件运行或部署到外部Tomcat服务器(通过管理器页面),我都会遇到同样的错误.这让我觉得我没有正确构建war文件.我找不到错误日志(但也许我错过了它们).

有任何想法吗?

tomcat war vaadin maven

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

Javafx中的ProgressBar不会在onAction块中更新

我想要一个在onAction块内更新的进度条.由于某些原因,在以下代码中,进度条在退出onAction块之前不会更新.我没有进步9秒,然后90%.该System.out打印就好了.

package net.snortum.play;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class ProgressBarTester extends Application {

    public static void main( String[] args ) {
        launch( ProgressBarTester.class, args );
    }

    @Override
    public void start( final Stage stage ) throws Exception {
        final GridPane grid = new GridPane();
        grid.setAlignment( Pos.CENTER );
        grid.setHgap( 10 );
        grid.setVgap( 10 ); …
Run Code Online (Sandbox Code Playgroud)

user-interface javafx progress

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

Java 8,在流中使用.parallel会导致OOM错误

Java 8 In Action,7.1.1节中,作者声明通过添加函数,流可以从并行处理中受益.parallel().它们提供了一种简单的方法parallelSum(int)来说明这一点.我很好奇它看起来有多好,所以我执行了这段代码:

package lambdasinaction.chap7;

import java.util.stream.Stream;

public class ParallelPlay {

    public static void main(String[] args) {
        System.out.println(parallelSum(100_000_000));
    }

    public static long parallelSum(long n) {
        return Stream.iterate(1L, i -> i + 1)
                .limit(n)
                .parallel()
                .reduce(0L, Long::sum);
    }
}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我收到了这个错误:

Exception in thread "main" java.lang.OutOfMemoryError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
    at java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
    at java.util.concurrent.ForkJoinTask.invoke(Unknown Source)
    at java.util.stream.SliceOps$1.opEvaluateParallelLazy(Unknown Source)
    at java.util.stream.AbstractPipeline.sourceSpliterator(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing java-8 java-stream

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