Tomcat未在调试模式下启动.记录下面的日志.
C:\ApacheSoft\apache-tomcat-7.0.67\bin>catalina.bat jpda start
Using CATALINA_BASE: "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_HOME: "C:\ApacheSoft\apache-tomcat-7.0.67"
Using CATALINA_TMPDIR: "C:\ApacheSoft\apache-tomcat-7.0.67\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_79"
Using CLASSPATH: "C:\ApacheSoft\apache-tomcat-7.0.67\bin\bootstrap.jar;C:\ApacheSoft\apache-tomcat-7.0.67\bin\tomcat-juli.jar"
=transport=dt_socket was unexpected at this time.
Run Code Online (Sandbox Code Playgroud) I\xe2\x80\x99m 在尝试将 log4j 重定向到 Cassandra 数据库时被杀。我\xe2\x80\x99已经花费了大量的时间尝试我能想到的一切,所以我不会\xe2\x80\x99t能够涵盖我\xe2\x80\x99已经尝试过的一切,但是我\xe2\x80\ x99ll 尝试尽可能简洁地描述我\xe2\x80\x99m 试图做什么以及我\xe2\x80\x99m 遇到什么。
\n\n我们的代码库当前使用 log4j 1.2.17,因此我的第一次尝试是让 com.datastax.logging.appender.CassandraAppender 正常工作。
\n相关的 Maven 依赖是这样的:
<dependency>\n <groupId>com.datastax.logging</groupId>\n <artifactId>cassandra-log4j-appender</artifactId>\n <version>3.1.0</version>\n</dependency>\nRun Code Online (Sandbox Code Playgroud)\n\nlog4j.xml 中相关的appender 条目是这样的:
\n\n<appender name="cassandra" class="com.datastax.logging.appender.CassandraAppender"/>\nRun Code Online (Sandbox Code Playgroud)\n\n附加程序默认为 \xe2\x80\x9clocalhost\xe2\x80\x9d 或 \xe2\x80\x9c127.0.0.1\xe2\x80\x9d,我不记得 \xe2\x80\x99 是哪个,而且我\xe2 \x80\x99 已经明确尝试了两者。它还默认为端口 9042,这是我的 Cassandra 配置的端口。事实上,这里\xe2\x80\x99是Cassandra的控制台输出:
\n\nBinding thrift service to localhost/127.0.0.1:9160\nRun Code Online (Sandbox Code Playgroud)\n\n我所能得到的只是一个例外:
\n\nlog4j:ERROR Error\ncom.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (null))\n at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:196)\n at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:80)\n at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1145)\n at com.datastax.driver.core.Cluster.init(Cluster.java:149)\n at com.datastax.driver.core.Cluster.connect(Cluster.java:225)\n at com.datastax.logging.appender.CassandraAppender.initClient(CassandraAppender.java:141)\n at com.datastax.logging.appender.CassandraAppender.append(CassandraAppender.java:97)\n at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)\n …Run Code Online (Sandbox Code Playgroud) 在这个问题上,我已经用头撞墙了几天。没有多少谷歌搜索或乱七八糟的东西似乎会产生答案。
我想在构建时运行 T4 模板。在其中,我需要访问我在此项目之前构建的程序集中的类型。我需要 msbuild 才能构建它,而 msbuild 不能很好地处理 VS 变量,所以我需要使用另一种方法来加载程序集。
我在很多地方都读到 T4ReferencePath 是设置加载自定义程序集的位置的答案。但是,我无法让它工作。
当我指定这个时:
<T4ReferencePath Include="$(TargetDir)" />
Run Code Online (Sandbox Code Playgroud)
当我尝试在 VS 中加载项目或使用 msbuild 运行它时,我得到了这个:
d:\Users\250894\Documents\Visual Studio 2013\Projects\TestT4\TestT4.csproj(90,22): error MSB4066: The attribute "Include" in element <T4ReferencePath> is unrecognized.
Run Code Online (Sandbox Code Playgroud)
我确实安装了“Visual Studio Visualization and Modeling SDK”。
我为不够简洁而道歉,但我包含了我的测试项目的整个 .csproj 文件,以防我遗漏了一些显而易见的东西。我不包括我的 .tt 文件,因为如果我什至无法加载我的 csproj,它就无关紧要。如果我排除 T4ReferencePath,则一切正常。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5B9944E7-47CF-4BFE-BAEF-F02D29D59E80}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TestT4</RootNamespace>
<AssemblyName>TestT4</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup> …Run Code Online (Sandbox Code Playgroud)