我跑去brew install tomcat
安装tomcat 8.
现在我需要把我的.war
文件放进去CATALINA_BASE/webapps
我无法在计算机上的任何位置找到该目录.我怎样才能找到这个文件夹,这样我才能把它放在.war
那里?
在Arch Linux ARM上启动Tomcat 8时,我收到以下警告:
信息:至少有一个JAR被扫描用于TLD但尚未包含TLD.为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表.在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间
我已经修改了$ {catalina.home} /logging.properties,如下所述:如何修复JSP编译器警告:一个JAR被扫描用于TLD但尚未包含TLD?
我将一些日志记录级别从INFO更改为FINE,取消注释"org.apache.jasper.compiler.TldLocationsCache.level = FINE"并添加了"org.apache.jasper.servlet.TldScanner.level = FINE".所以文件的结尾现在看起来如下:
org.apache.catalina.core.ContainerBase.[Catalina].[localhost] .level = FINE org.apache.catalina.core.ContainerBase.[Catalina].[localhost] .handlers = 2localhost.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ manager] .level = FINE org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ manager] .handlers = 3manager.org.apache.juli.AsyncFileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ host-manager] .level = FINE org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ host- manager] .handlers = 4host-manager.org.apache.juli.AsyncFileHandler
#例如,将org.apache.catalina.util.LifecycleBase记录器设置为log#扩展LifecycleBase更改状态的每个组件:#org.apache.catalina.util.LifecycleBase.level = FINE
#要在TldLocationsCache中查看调试消息,请取消注释以下行:org.apache.jasper.compiler.TldLocationsCache.level = FINE org.apache.jasper.servlet.TldScanner.level = FINE
但我仍然在启动时收到警告,而不是不需要的JAR路径.怎么了?
如何在spring boot应用程序中设置活动配置文件 此应用程序将部署在独立的Tomcat中.
我有2个属性文件application- {profile} .properties.
我的应用程序类
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev");
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用嵌入式tomcat运行应用程序,dev配置文件将设置为活动状态,并且工作正常.但是当我单独部署tomcat时.这是行不通的.
我尝试在configure方法中设置活动配置文件.但是当我从上下文中获取环境时,我得到空指针异常.
有关如何设置活动配置文件的任何帮助.
这有点是由spring-boot-starter-jersey附带的tomcat-embed-core版本8.5.4引起的.它会在所有集成测试中生成如下所示的错误.它只有在我覆盖pom以使用tomcat-embed-core版本8.0.36时才有效.奇怪的是,这是我得到的唯一错误信息.
java.lang.NullPointerException: null
at org.apache.catalina.authenticator.AuthenticatorBase.getJaspicProvider(AuthenticatorBase.java:1140)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:431)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:1110)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
这是我的依赖树:
[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ sample-services ---
[INFO] com.sample:sample-services:jar:1.0.0-SNAPSHOT
[INFO] +- com.sample:sample-customer:jar:1.0.0-SNAPSHOT:compile
[INFO] | +- com.sample:sample-core:jar:1.0.0-SNAPSHOT:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.0.RELEASE:compile
[INFO] | | | +- org.springframework.boot:spring-boot-starter-aop:jar:1.4.0.RELEASE:compile
[INFO] | | | | \- org.aspectj:aspectjweaver:jar:1.8.9:compile
[INFO] | | | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.0.RELEASE:compile
[INFO] | | | | +- …
Run Code Online (Sandbox Code Playgroud) 我们收到与AXIS2 1.7.3相关的错误.我们使用最新的Java8运行Tomcat8.
java.io.IOException: APR error: -730054
org.apache.axis2.AxisFault: java.io.IOException: APR error: -730054
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:78)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.sendUsingOutputStream(CommonsHTTPTransportSender.java:365)
at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:244)
at org.apache.axis2.engine.AxisEngine.sendFault(AxisEngine.java:514)
at org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:450)
at org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:415)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:205)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at ad.common.GZipServletFilter.doFilter(GZipServletFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused …
Run Code Online (Sandbox Code Playgroud) 我正在将Web应用程序(WAR)部署到Tomcat 8 Web容器.
WAR在'/ WEB-INF/lib'目录中包含以下jTDS JDBC驱动程序:
<dependency org="net.sourceforge.jtds" name="jtds" rev="1.3.1" />
Run Code Online (Sandbox Code Playgroud)
(文件是:) jtds-1.3.1.jar
.
这是资源的定义方式META-INF/context.xml
:
<Resource name="jdbc/jtds/sybase/somedb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sybase://localhost:2501/somedb"
username="someuser" password="somepassword"
/>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我以正常方式获取javax.sql.DataSource:
InitialContext cxt = new InitialContext();
if ( cxt == null ) {
throw new RuntimeException("Uh oh -- no context!");
}
DataSource ds = (DataSource) cxt.lookup( lookupName );
Run Code Online (Sandbox Code Playgroud)
我进一步验证(通过打印)DataSource对象ds
是期望的类型:
org.apache.tomcat.dbcp.dbcp2.BasicDataSource
Run Code Online (Sandbox Code Playgroud)
...但是当我尝试从中获取连接时:
Connection conn = ds.getConnection();
Run Code Online (Sandbox Code Playgroud)
......我得到以下描述:
java.lang.AbstractMethodError
net.sourceforge.jtds.jdbc.JtdsConnection.isValid(JtdsConnection.java:2833)
org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:924)
org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:282)
org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:359)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2316)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2299)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2043)
org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1543)
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
我正在尝试为tomcat 8实例设置自定义umask,试图通过在systemd tomcat单元中使用UMask指令使其成为一种好方法,如此处所示,没有运气.
我想设置022 umask,因为公司开发人员需要访问tomcat /应用程序日志,并且它们与tomcat用户不在同一组中....
疯狂的是systemd doc说:
控制文件模式创建掩码.采用八进制表示法访问模式.有关详细信息,请参阅umask(2).默认为0022.
但是日志(application/tomcat)设置为640(不是预期的755):
-rw-r----- 1 top top 21416 Feb 1 09:58 catalina.out
Run Code Online (Sandbox Code Playgroud)
我的服务文件:
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[...]
User=top
Group=top
UMask=0022
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
谢谢
我有一个以下格式的请求网址
http://hostname:port/path¶m1={"vars":[{"a":"val1","b":"^"},{"c":"val2","d":"^"}]}¶m2=Value3|95|3%20-%206%20Months
Run Code Online (Sandbox Code Playgroud)
我根据这个stackoverflow问题更改了catalina.properties .
但按照Tomcat文档 tomcat.util.http.parser.HttpParser.requestTargetAllow财产已被弃用,relaxedPathChars和relaxedQueryChars属性要与连接器标签代替.
但是,当我将xml文件更改为下面
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars="^" relaxedPathChars="^"/>
Run Code Online (Sandbox Code Playgroud)
我仍然得到400个字符的错误请求^
我不确定这是否是正确的配置.
版本 Java:10.0.1 Tomcat:8.0.36 Ubuntu:18.04(64位)Eclipse:Photon(64位)
错误:当我运行Tomcat服务器时,我发现以下错误.如果可能,请不要告诉我减少版本,因为我喜欢使用最新技术.
SEVERE: Failed to trigger creation of the GC Daemon thread during Tomcat start to prevent possible memory leaks. This is expected on non-Sun JVMs.
java.lang.ClassNotFoundException: sun.misc.GC
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at org.apache.catalina.core.JreMemoryLeakPreventionListener.lifecycleEvent(JreMemoryLeakPreventionListener.java:286)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:394)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:99)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Run Code Online (Sandbox Code Playgroud) 我有一个Spring Boot应用程序,当我使用来自Intellj的嵌入式服务器运行它时,它运行良好。但是,当我将其打包到.war文件并将其部署在tomcat上时,出现以下错误:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/file-upload-0.0.1-SNAPSHOT]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.
at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2200)
at
org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2159)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1124)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:769)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5176)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) …
Run Code Online (Sandbox Code Playgroud)