java - Spring 4 with Annotation Tomcat Deployment 404 Error -


i using spring 4, servlet 3 api , tomcat 8 project. have problem deployment. trying deploy war package in vps. using intellij idea.

i coppied war /opt/tomcat/webapps path. can see war tomcat's apps page. when try browse url 404 not found error.

i using spring annotation , empty web.xml , using spring security.

wepappinitializer.java

public class wepappinitializer implements webapplicationinitializer {  @override public void onstartup(final servletcontext servletcontext) throws servletexception {     annotationconfigwebapplicationcontext ctx = new annotationconfigwebapplicationcontext();     ctx.register(webconfig.class);     ctx.setservletcontext(servletcontext);     servletregistration.dynamic dynamic = servletcontext.addservlet("dispatcher", new dispatcherservlet(ctx));     dynamic.addmapping("/acentecilik");     dynamic.setloadonstartup(1);     } } 

webconfig.java

@configuration @enablewebmvc @enabletransactionmanagement @componentscan("com.decimatech.acentecilik") @propertysource("classpath:application.properties") public class webconfig extends webmvcconfigureradapter{  @override public void addinterceptors(interceptorregistry registry) {     registry.addinterceptor(new thymeleaflayoutinterceptor()); }   @override public void addresourcehandlers(resourcehandlerregistry registry){     registry.addresourcehandler("/resources/**").addresourcelocations("/static/"); }  @bean @description("thymeleaf template resolver serving html 5") public servletcontexttemplateresolver templateresolver() {     servletcontexttemplateresolver templateresolver = new servletcontexttemplateresolver();     templateresolver.setprefix("/web-inf/html/");     templateresolver.setsuffix(".html");     templateresolver.settemplatemode("legacyhtml5");     templateresolver.setcharacterencoding("utf-8");     templateresolver.setcacheable(false);      return templateresolver; }  @bean @description("thymeleaf template engine spring integration") public springtemplateengine templateengine() {     springtemplateengine templateengine = new springtemplateengine();     templateengine.settemplateresolver(templateresolver());      return templateengine; }  @bean @description("thymeleaf view resolver") public thymeleafviewresolver viewresolver() {     thymeleafviewresolver viewresolver = new thymeleafviewresolver();     viewresolver.settemplateengine(templateengine());     viewresolver.setcontenttype("text/html;charset=utf-8");     viewresolver.setcharacterencoding("utf-8");      return viewresolver; }  @value("${spring.datasource.driver-class-name}") private string driverclassname;  @value("${spring.datasource.url}") private string datasourceurl;  @value("${spring.datasource.username}") private string datasourceusername;  @value("${spring.datasource.password}") private string datasourcepassword;  @bean(name = "datasource") public datasource getdatasource() {     drivermanagerdatasource datasource = new drivermanagerdatasource();     datasource.setdriverclassname(driverclassname);     datasource.seturl(datasourceurl);     datasource.setusername(datasourceusername);     datasource.setpassword(datasourcepassword);      return datasource; }  @autowired @bean(name = "transactionmanager") public hibernatetransactionmanager gettransactionmanager(sessionfactory sessionfactory) {     hibernatetransactionmanager transactionmanager = new hibernatetransactionmanager(sessionfactory);      return transactionmanager; }  @autowired @bean(name = "sessionfactory") public sessionfactory getsessionfactory(datasource datasource) {      localsessionfactorybuilder sessionbuilder = new localsessionfactorybuilder(datasource);      sessionbuilder.scanpackages("com.decimatech.acentecilik.model");     sessionbuilder.addproperties(gethibernateproperties());      return sessionbuilder.buildsessionfactory(); }  private properties gethibernateproperties() {     properties properties = new properties();     properties.put("hibernate.dialect", "org.hibernate.dialect.postgresqldialect");     properties.put("hibernate.hbm2ddl.auto", "update");     properties.put("hibernate.show_sql", "true");     properties.put("hibernate.format_sql", "true");     properties.put("hibernate.use_sql_comments", "true");     properties.put("hibernate.enable_lazy_load_no_trans", "true");     return properties; }  @bean public static propertysourcesplaceholderconfigurer propertysourcesplaceholderconfigurer() {     return new propertysourcesplaceholderconfigurer(); } } 

web.xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"      xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"      xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee                   http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"      version="3.1"      metadata-complete="true">  <display-name>acentecilik</display-name> <description>     acentecilik </description> </web-app> 

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/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion>  <groupid>com.decimatech</groupid> <artifactid>acentecilik</artifactid> <version>1.0-snapshot</version>  //some package dependencies  <build>     <plugins>         <plugin>             <groupid>org.apache.maven.plugins</groupid>             <artifactid>maven-compiler-plugin</artifactid>             <version>3.3</version>             <configuration>                 <source>1.8</source>                 <target>1.8</target>             </configuration>         </plugin>          <plugin>             <groupid>org.apache.maven.plugins</groupid>             <artifactid>maven-resources-plugin</artifactid>             <version>2.7</version>             <configuration>                 <encoding>utf-8</encoding>             </configuration>         </plugin>     </plugins> </build>  </project> 

here screenshot settings used.

idea war settings idea war settings

project structures

project structures

tomcat manage apps page

tomcat manage apps page

and 404 error 404 error

how can solve problem?

here catalina log file's output. changed war's ownership root tomcat user. still same problem.

02-oct-2015 16:03:23.800 severe [localhost-startstop-10] org.apache.catalina.startup.contextconfig.beforestart exception fixing docbase context [/acentecilik] java.io.ioexception: unable create directory [/opt/tomcat/webapps/acentecilik] @ org.apache.catalina.startup.expandwar.expand(expandwar.java:115) @ org.apache.catalina.startup.contextconfig.fixdocbase(contextconfig.java:618) @ org.apache.catalina.startup.contextconfig.beforestart(contextconfig.java:744) @ org.apache.catalina.startup.contextconfig.lifecycleevent(contextconfig.java:307) @ org.apache.catalina.util.lifecyclesupport.firelifecycleevent(lifecyclesupport.java:95) @ org.apache.catalina.util.lifecyclebase.firelifecycleevent(lifecyclebase.java:90) @ org.apache.catalina.util.lifecyclebase.setstateinternal(lifecyclebase.java:402) @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:147) @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:725) @ org.apache.catalina.core.containerbase.addchild(containerbase.java:701) @ org.apache.catalina.core.standardhost.addchild(standardhost.java:717) @ org.apache.catalina.startup.hostconfig.deploywar(hostconfig.java:945) @ org.apache.catalina.startup.hostconfig$deploywar.run(hostconfig.java:1798) @ java.util.concurrent.executors$runnableadapter.call(executors.java:471) @ java.util.concurrent.futuretask.run(futuretask.java:262) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:745)

02-oct-2015 16:03:58.561 info [localhost-startstop-10] org.apache.jasper.servlet.tldscanner.scanjars @ least 1 jar scanned tlds yet contained no tlds. enable debug logging logger complete list of jars scanned no tlds found in them. skipping unneeded jars during scanning can improve startup time , jsp compilation time.

02-oct-2015 16:03:58.649 info [localhost-startstop-10] org.apache.catalina.startup.hostconfig.deploywar deployment of web application archive /opt/tomcat/webapps/acentecilik.war has finished in 34,860 ms

edit changed /opt/tomcat/webapps ownership tomcat , don't 404 error. have this.

info [http-nio-8080-exec-17] org.apache.catalina.core.applicationcontext.log no spring webapplicationinitializer types detected on classpath

the exception says

org.apache.catalina.startup.contextconfig.beforestart exception fixing docbase context [/acentecilik] java.io.ioexception: unable create directory

and you've stated tomcat under /opt. suppose tomcat has not sufficient permission create (write permission) on own directory /opt/tomcat.

if give write permission user launches tomcat (most own user) problem goes away.

sudo chmod -r 0744 /opt/tomcat


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -