Tag Archives: tomcat

appear org.springframework.beans . factory.BeanCreationException Causes and solutions of abnormal

1 Abnormal description
After checking out the project from SVN and configuring it, start the Tomcat server and report the following error:

2 Abnormal Causes
By observing the abnormal information marked in the figure above, we can know

Org. Springframework. Beans. Factory. BeanCreationException: Error creating bean with the name ‘XXX’

This exception is: Injection bean failed exception.
To put it bluntly, if this exception occurs, the corresponding bean cannot be found! The reasons why bean injection can fail include but are not limited to the following:
The corresponding bean is not annotated; @service stead of dubbo; Select the wrong automatic injection method, etc.
3 Solutions
Now that we know the cause of this exception, we look back at the corresponding Bean declaration and see that the code that injected the Facade is:

@Autowired
ErrorCodeFacade errorCodeFacade;

Well, here’s the mistake! In general, when injecting interfaces at the Service and Biz layer, you can use @Autowiredfor example:

@Autowired
ErrorCodeService errorCodeService;

But, when injected into the Facade layer interface, should use the RemoteServiceFactory. GetService () , such as:

ErrorCodeFacade errorCodeFacade = RemoteServiceFactory.getService(ErrorCodeFacade.class);

That is, the exception is resolved by declaring the ErrorCodeFacade with the code above.


Warm prompt: there are many reasons for this exception, the above only lists the problems I encountered and solutions, I hope to be helpful to you!

JSON parse error: invalid UTF-8 solution series

Today, the code passed the local test and the Tomcat server was deployed. My front-end colleague gave me the following error feedback:

Request","exception":"org.springframework.http.converter.HttpMessageNotReadableException","message":"JSON parse error: Invalid UTF-8 middle byte 0x3f

I immediately started the local project and asked colleagues in the front end to connect my local project for relevant function prompts. The result was that everything was normal without any problem, and the response error messages returned by checking the front end were all 400.
The error screenshot is not saved. The format of the error response is as follows:
To be added.
 
We must be clear here: in response to the 400 error code, there are several reasons for the error:
Tomcat service transport encoding format not specified (UTF-8)
Tomcat server JAR file encoding format not specified (UTF-8)
The front-end request header parameter does not match the backend parse header parameter.
Step 1: Configure the Tomcat server to transfer the encoding format specified:
Edit the tomcat/conf/server.xml file and add encoding attributes to the Connector tag: uriEncoding =”UTF-8″

Setjava_opts =%JAVA_OPTS% -dfile.encoding =UTF-8; setjava_opts % -dfile.encoding =UTF-8

SpringMVC backend code specifies request header information:

Servlet page Jump error 500

Idea to deploy the servlet submit page jump, error 500 page report
error message jar package not add
in fact has been added to the project required jars
solution: in the tomcat lib folder under the required jars are added

Problems of accessing servlet display 404 on MyEclipse

Sometimes, when accessing a servlet in MyEclipse, a 404 page will appear. I won’t go into this if the web.xml is not configured properly or the URL is wrong, but I will talk about the situation where everything seems to be correct but I still can’t access it.
All you need to do is find the container where the servlet is running, in this case Tomcat, close it first, then locate the corresponding project in Tomcat, click ReDeploy, and then start Tomcat.

Illegalargumentexception: control character in cookie value or attribute tomcat7

It is disgusting to encounter this exception. In Tomcat7 environment, this exception will be raised if the user’s name appears in Chinese when logging in. After the exception is caused, the user who cannot log in normally needs to delete the browser’s cookie information. Later, I checked the Internet and found out that the problem was Chinese transcoding. The abnormal information is as follows:

java.lang.IllegalArgumentException: Control character in cookie value or attribute.     
    at org.apache.tomcat.util.http.CookieSupport.isV0Separator(CookieSupport.java:155)     
    at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:323)     
    at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:157)     
    at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:98)     
    at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:913)     
    at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:683)     
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:400)     
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)     
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)     
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)     
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)     
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)     
    at java.lang.Thread.run(Thread.java:662)   

Cookie is encoded by Unicode in Chinese and ASCII in English when storing the value, so the data needs to be transcoded when storing the Chinese value, and the data also needs to be transcoded when storing the value.
There are two solutions, one is a Cookie written in Java, and the other is a Cookie written in JavaScript.
The solution is as follows:
Java:

Encode: URLEncoder. Encode (name, “UTF-8”);
Decode.decode (name, “UTF-8”);
Decode.decode (name, “UTF-8”);

JavaScript:

Code: the escape (name);/encodeURI(name);
decode: unescape(name);/decodeURI(name);

The Servlet setting cookies to view the article: http://blog.csdn.net/twilight041132/article/details/46482983

Solution of server startup timeout in eclipse

Eclipse Server boot timeout solution
Server Tomcat V8.5 at localhost was unable to start within 45 seconds. If the Server requires more time, try increasing the timeout in the Server editor. Server Tomcat V8.5 at localhost was unable to start within 45 seconds
Solution:

    double-click the server
    find Timeouts – start, set up the server startup time restart the server is ok
    Welcome to scan the code and follow our QQ group or log in bilibili. Follow Bing Cola and share and communicate with us about front-end, back-end and big data development

The solution of multiple markers at this line @ override

Using Eclipse for project development, adding @Override before a method in an implementation class indicates a “Multiple Markers at this line” error. The problem is described below
Multiple Markers at this line
– The Method getStudentById (String) of type StudentBeanImpl must override a superclass method
plements. Multiple Markers at this line
– The Method getStudentById (String) of type StudentBeanImpl must override a superclass method
-implements mgr.jc.student.service.IStudentBean.getStudentByID

Reason for this problem: JDK1.5 does not support this notation. Implementing interface methods requires overriding abstract methods.
The solutions to the above problems are as follows:
Method 1. Select Eclipse Window→Preferences→Java→Compiler and change the Compiler Compliance Level from 1.5 to above 1.6.

Right-click on Project and select the last Properties. Select the Java Compiler on the left, check the box inside, and change the Java Editor version to 1.6.

Method 3. Right-click the JRE System Library[javase-1.5]→Properties under Project, and select “javase-1.6 (jdk1.6.0_10)” and click OK.

All the above three methods can solve the problem mentioned in the question, you can choose the corresponding solution according to your own habits.
 

Solution in idea java.lang.ClassNotFoundException : org.springframework.web . context.ContextLoaderListener

Reference blog: IDEA development in Java. Lang. ClassNotFoundException: org. Springframework. Web. Context. The ContextLoaderListener error solution


Have a problem
In the process of writing a simple SpringMVC project, I tried to start the project with Tomcat, but found the following errors:

java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener

Simply put, the ContextLoaderListener class cannot be found. The strange thing about
is that the SpringMVC project that I wrote before doesn’t have similar problems. ┍ ┑ ( ̄ Д  ̄)


The solution
After asking baidu, I was told to add Available Elements to the Artifact.
click File - & gt; Project Structure-> Artifacts, right-click the project name in Available Elements, and select Put into Output Root.

Then restart Tomcat, you will be able to access the page correctly! O (≧ ヾ del ≦ *)

IntelliJ idea community community integrated Tomcat or jetty tutorial

Integration of Tomcat tutorials with IntelliJ IDEA Community edition
 
The first step:
Open Intellij IDEA -& GT; Preference -> Plugins

 
The second step:
Search Tomcat/Jetty in the Plugins search box, and you see the following:

 
Step 3:
Select the Smart Tomcat plug-in, there is a green Install button on the right side, click to install, and restart IDEA after installation.

 
Step 4:
On the top menu bar Run -> Edit Configurations configuration environment variable:

 
Step 5:
Set the path of Tomcat Server, Webapps, etc. :
Name: Project Name
Tomcat: Tomcat path
Deployment: The path of WebApps
Context Path: Context Path, this will be recognized automatically, and you generally don’t need to modify it
Server Port: Server listening Port 8080 (generally modified by yourself)
VM Options: Java Virtual Machine parameter Settings (optional)
PS: Click the + sign in the upper right corner. Select Smart Tomcat from the Templates Templates. You can also select Jetty, which can be Run/Debug online

 
Step 6:
To run the sample program, you’ll see the Tomcat icon in the toolbar, then the run/debug button on the right green, the stop button in red, click the Green run or Debug button to start the container, and under IDEA, the print log will appear


 
Step 6:
Open a browser, and then visit just set the address, http://localhost:8080/symphony
The port number 8080 is set when Tomcat Server is configured
Project Name Symphony is also set when configuring Tomcat Server. The sample interface is as follows:

 
Above step, you can run, in addition to this example to demonstrate the source code of the project, this open source project first AGPL protocol limits, please use within the limits of the protocol:
https://github.com/b3log/symphony