小编DP_*_*DP_的帖子

如何实现Web服务的持续部署

我有一个Java应用程序,它在Web容器(Jetty目前)内运行,并通过Web服务响应请求.

现在我想创建一个机制,允许尽可能容易地部署(将WAR文件传输到服务器,在那里安装新版本)应用程序的新版本到达Amazon EC2实例(理想情况下 - 通过运行一些Maven命令) .

我正在使用Beanstalk进行版本控制,它们提供了部署支持,但我无法弄清楚如何将其应用到我的场景中.

有没有关于如何使用Maven(有或没有Beanstalk)将Web应用程序部署到Amazon EC2的教程?

更新1(10.04.2013): Beanstalk工作人员建议我使用SSH部署.

更新2(2013年4月11日23:17 MSK):

在我第一次尝试使用Maven Cargo插件时,我向我添加了以下内容pom.xml:

<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>
    [...]
    <build>
    [...]    
            <plugin>
                <groupId>org.codehaus.cargo</groupId>
                <artifactId>cargo-maven2-plugin</artifactId>
                <configuration>
                    <container>
                        <containerId>Heaven7</containerId>
                        <type>remote</type>
                    </container>
                    <configuration>
                        <type>runtime</type>
                        <properties>
                            <cargo.remote.username>myusername</cargo.remote.username>
                            <cargo.remote.password>mypassword</cargo.remote.password>
                        </properties>
                    </configuration>

                    <!-- Deployer configuration -->
                    <deployer>
                        <type>remote</type>
                    </deployer>

                    <deployables>
                        <deployable>
                            <groupId>ru.mycompany</groupId>
                            <artifactId>my-product</artifactId>
                            <type>war</type>
                        </deployable>
                    </deployables>
                </configuration>
            </plugin>
        </plugins>
    </build>
    [...]
</project>
Run Code Online (Sandbox Code Playgroud)

然后我跑了mvn cargo:deploy并获得了以下输出:

[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.3.3:dep
oy (default-cli) on project [...]: …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services maven-3 maven continuous-deployment

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

Jenkins安装 - 尽管存在和可写性,但无法创建主目录

我正在尝试在Tomcat 7容器上安装Jenkins.

当我尝试打开Jenkins网络应用程序时,我收到以下错误:

Unable to create the home directory '/home/myuser/jenkins/work'. This is most 
likely a permission problem.

To change the home directory, use JENKINS_HOME environment variable or set 
the JENKINS_HOME system property. See Container-specific documentation for 
more details of how to do this.
Run Code Online (Sandbox Code Playgroud)

在开始Tomcat之前,我做到了chmod uog+rwx /home/myuser/jenkins.所以,我想Jenkins应该能够在那里创建一个子目录.

但显然它不能.

我该如何解决这个问题?

更新1:

lt -lt 回报

drwxrwxrwx 2 root ec2-user 4096 Jun 23 10:25 jenkins

/home/myuser/jenkins./home/myuser/jenkins/work因为詹金斯应该创造它而不存在.

更新2:刚尝试创建work目录并chmod uog+rwx在其上运行.它没有帮助.

更新3:其他信息:

  1. 我需要詹金斯才能
    1. 在夜间进行冗长的测试(快速单元测试在每次运行之前运行mvn …

continuous-integration hudson jenkins

5
推荐指数
2
解决办法
9261
查看次数

我为V2创建了一个Android Map API密钥,无法显示地图

我为版本2创建了一个Google API密钥,并在清单中使用了该密钥,但我无法在设备上显示地图.

我已按照谷歌地图文档中提供的所有内容.我也用过这个链接.

MainActivity.java.

包com.example.googlenewmap;

    import android.os.Bundle;
    import android.support.v4.app.FragmentActivity;

    import com.google.android.gms.maps.GoogleMap;
    import com.google.android.gms.maps.SupportMapFragment;
    import com.google.android.gms.maps.model.BitmapDescriptorFactory;
    import com.google.android.gms.maps.model.LatLng;
    import com.google.android.gms.maps.model.MarkerOptions;

    public class MainActivity extends FragmentActivity {
        static final LatLng HAMBURG = new LatLng(53.558, 9.927);
        static final LatLng KIEL = new LatLng(53.551, 9.993);
        private GoogleMap map;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            map = ((SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map)).getMap();

            if (map != null) {
                map.addMarker(new MarkerOptions().position(HAMBURG)
                        .title("Hamburg"));
                map.addMarker(new MarkerOptions()
                        .position(KIEL)
                        .title("Kiel")
                        .snippet("Kiel")
                        .icon(BitmapDescriptorFactory
                                .fromResource(R.drawable.ic_launcher)));
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

清单文件

 <?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

android google-maps

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

如何找出ASP.NET中当前登录用户的名称?

我有一个运行在计算机1上的ASP.NET应用程序。

当用户从计算机2访问该页面时,我想找出用户名,以该用户名登录计算机2。

我尝试使用

  • Request.LogonUserIdentity.Name
  • Page.User.Identity.Name
  • ((WindowsIdentity)HttpContext.Current.User.Identity).Name
  • ((WindowsIdentity)HttpContext.Current.User.Identity).User
  • Request.LogonUserIdentity.User

但这不起作用。

Request.LogonUserIdentity.Name返回NT AUTHORITY\IUSRRequest.LogonUserIdentity.User- S-1-5-17,其他所有-空字符串。NT AUTHORITY\IUSR是运行Web应用程序的计算机上的用户,而不是客户端计算机上的用户。

web.config我禁用模仿使用

<authentication mode="Windows"/>
<identity impersonate="false"/>
Run Code Online (Sandbox Code Playgroud)

为了获得访问网页的用户的用户名,我该怎么办?

.net c# asp.net

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

如何更改基于CDT的eclipse调试器中线程组显示中的文本?

我有一个基于CDT的调试器,并希望在线程节点中的字母中添加一些信息.我希望红色矩形包围的字母显示一些额外的信息(见下面的截图).

截图

AFAIR,此标签的格式字符串ThreadVMNode_No_columns__text_format在文件中的属性中设置C:\Users\...\workspace\org.eclipse.cdt.dsf.gdb.ui\src\org\eclipse\cdt\dsf\gdb\internal\ui\viewmodel\launch\MessagesForGdbLaunchVM.properties.

# {0} - name available, 0=not available/1=available
# {1} - name
# {2} - ID available, 0=not available/1=available
# {3} - ID
# {4} - OS Thread ID available, 0=not available/1=available
# {5} - OS Thread ID
# {6} - Core available, 0=not available/1=available
# {7} - Core 
# {8} - 0=running/1=suspended
# {9} - state change reason available, 0=not available/1=available
# {10} - state change reason
# {11} - state change details available, …
Run Code Online (Sandbox Code Playgroud)

java eclipse eclipse-cdt eclipse-rcp

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

如何在 Maven 化的多模块项目中从 CheckStyle 分析中排除包?

我有一个包含多个模块的 Maven 项目,包括org.eclipse.cdt.core. 由于某种原因,客户org.eclipse.cdt.core也想构建。

我想生成一个聚合的 Checkstyle 报告,其中org.eclipse.cdt.core.*排除了一些文件,包括所有(包括子包)类。

为此,我将excludes标签指定为

<excludes>**/org/eclipse/cdt/core/**/*,org.eclipse.cdt.core/src/**/*,../org.eclipse.cdt.core/src/**/*,org.eclipse.cdt.core/**/*</excludes>
Run Code Online (Sandbox Code Playgroud)

然后我运行mvn clean checkstyle-aggregate site,打开文件target/checkstyle-result.xml并在其中找到以下几行:

<file name="C:\dev\ide\org.eclipse.cdt.core\src\org\eclipse\cdt\core\AbstractExecutableExtensionBase.java">
<error line="0" severity="error" message="File does not end with a newline." source="com.puppycrawl.tools.checkstyle.checks.NewlineAtEndOfFileCheck"/>
<error line="10" severity="error" message="Line is longer than 80 characters (found 81)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
<error line="15" severity="error" message="Line is longer than 80 characters (found 83)." source="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck"/>
Run Code Online (Sandbox Code Playgroud)

这意味着我的<excludes>标签不起作用。

然后,我把线

<properties>
    <checkstyle.skip>true</checkstyle.skip>
</properties>
Run Code Online (Sandbox Code Playgroud)

pom.xml要从 Checkstyle 中排除的所有模块的文件中,但这没有帮助。

如何在没有某些模块结果的情况下生成 CheckStyle 报告(XML 或 HTML)(除了获取 180 …

java checkstyle maven-3 maven

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

如何决定是在Postgres还是在文件中存储二进制数据?

我正在开发一个Postgres支持的系统,其中将存储许多二进制文件.

我至少有两个选择:

  1. 将它们存放在Postgres中.
  2. 将它们存储为文件.

我需要考虑哪些标准才能做出最佳决策?

postgresql binaryfiles binary-data postgresql-9.5

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

org.dbunit.dataset.NoSuchColumnException

我运行测试时遇到以下错误:

org.dbunit.dataset.NoSuchColumnException: myTable.MYFIELD -  (Non-uppercase input column: myfield) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive.
    at org.dbunit.dataset.AbstractTableMetaData.getColumnIndex(AbstractTableMetaData.java:117)
Run Code Online (Sandbox Code Playgroud)

我设置了断点org.dbunit.dataset.AbstractTableMetaData#getColumnIndex并发现了以下内容.在IntelliJ Idea中,该方法如下所示:

public int getColumnIndex(String columnName) throws DataSetException 
{
    logger.debug("getColumnIndex(columnName={}) - start", columnName);

    if(this._columnsToIndexes == null) 
    {
        // lazily create the map
        this._columnsToIndexes = createColumnIndexesMap(this.getColumns());
    }

    String columnNameUpperCase = columnName.toUpperCase();
    Integer colIndex = (Integer) this._columnsToIndexes.get(columnNameUpperCase);
    if(colIndex != null) 
    {
        return colIndex.intValue();
    }
    else 
    {
        throw new NoSuchColumnException(this.getTableName(), columnNameUpperCase,
                " (Non-uppercase input column: "+columnName+") in …
Run Code Online (Sandbox Code Playgroud)

java testing dbunit spring-test-dbunit

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

如何使用JIRA REST客户端库?

我需要使用 JIRA REST 客户端版本 5.2.0 或更高版本。Cloud JIRA 不适用于早期版本的客户端。

在我的pom.xml文件中,我有以下依赖项:

<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-core</artifactId>
    <version>5.2.1</version>
</dependency>
<dependency>
    <groupId>com.atlassian.jira</groupId>
    <artifactId>jira-rest-java-client-app</artifactId>
    <version>5.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当我构建项目时,我遇到这样的异常:

Failed to execute goal on project XXXXXXXXX: Could not resolve dependencies for project  XXXXXXXXXX:jar:XXXX: Failed to collect dependencies at com.atlassian.jira:jira-rest-java-client-core:jar:5.2.1: Failed to read artifact descriptor for com.atlassian.jira:jira-rest-java-client-core:jar:5.2.1: Could not find artifact com.atlassian.platform:platform:pom:3.1.7 in MY_REPO (http://XXXXXXXXXX/repository/maven-public) -
Run Code Online (Sandbox Code Playgroud)

com.atlassian.platform:platform:pom:3.1.7未在mvnrepository中列出。有版本3.1.123.1.17,但没有3.1.7。有人告诉我该版本3.1.7可能存在与安全相关的错误,因此被 Atlassian 删除。

jira-rest-java-client-app都是jira-rest-java-client-parentjira-rest-java-client-core的子级,它使用该平台的版本: …

java jira maven jira-rest-java-api jira-rest-api

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

如何确保在 Apache Tomcat 中运行的 Spring Boot 应用程序中替换环境变量占位符?

我有一个 Spring Boot 应用程序,它在 Apache Tomcat 服务器中运行。其中,application.yaml我有以下条目:

mail:
  pop3Host: ${MAIL_HOSTNAME}
  inboxFolder: ${MAIL_INBOX}
  hostName: ${MAIL_HOSTNAME}
  port: ${MAIL_PORT}
  userName: ${MAIL_USERNAME}
  password: ${MAIL_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

该应用程序从 IntelliJ Idea 中部署到 Tomcat,因此我可以对其进行调试。

我使用以下命令启动Tomcat:

export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8090,server=y,suspend=n"
export JAVA_OPTS=" -DMAIL_HOSTNAME='smtp.provider.com' -DMAIL_INBOX='MAIL_INBOX' -DMAIL_PORT='587' -DMAIL_USERNAME='username' -DMAIL_PASSWORD='XXXXXXXX'"
export CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8090,server=y,suspend=n"
./catalina.sh jpda start
Run Code Online (Sandbox Code Playgroud)

然而,我之后

  1. 使用上面的脚本启动Tomcat,
  2. 从 IntelliJ Idea 部署 Spring Boot 应用程序,以及
  3. 确保执行使用这些值的代码,

我得到的异常表明占位符没有被替换。

我该如何修复它,即确保我可以application.yaml通过环境变量指定一些信息(如用户名和密码)(这样我就不会在 中包含实际凭据application.yaml)?

java spring-boot tomcat9

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