Cannot process an HTTP request to servlet [DialogServlet] in [manufacturing] web application.
Hi all,
Now I can't open any new search help that use with the dialogservlet .
And the log have the following error message :
500 Internal Server Error is returned for HTTP request
[http://xxxx:xxxxxx/manufacturing/com/sap/me/system/common/client/ErrorPage.jsp]:
component [DialogServlet],
web module [manufacturing],
application [sap.com/me~ear],
DC name [sap.com/me~ear],
CSN
component[],
problem categorization [com.sap.ASJ.web.000137],
internal categorization [254340799].
[EXCEPTION]
java.lang.NullPointerException: while trying to invoke
the method java.lang.Throwable.printStackTrace(java.io.PrintWriter) of an object
loaded from local variable 'e'
at
com.sap.me.frame.Utils.getStackTrace(Utils.java:764)
at
JEE_jsp_com_sap_me_system_common_client_ErrorPage_1410450_1404183172000_1404185122991._jspService(JEE_jsp_com_sap_me_system_common_client_ErrorPage_1410450_1404183172000_1404185122991.java:137)
at
com.sap.engine.services.servlets_jsp.lib.jspruntime.JspBase.service(JspBase.java:102)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at
com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:428)
at
com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:147)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at
com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.doCached(RequestDispatcherImpl.java:655)
at
com.sap.engine.services.servlets_jsp.server.runtime.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:488)
at
com.vatti.mes.common.web.BaseServlet.doError(BaseServlet.java:61)
at
com.vatti.mes.common.dialog.web.DialogServlet.doPost(DialogServlet.java:125)
at
com.vatti.mes.common.dialog.web.DialogServlet.doGet(DialogServlet.java:53)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at
com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:457)
at
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)
at
com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)
at
com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:276)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
at
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at
com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)
at
com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at
com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at
com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)
at
com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)
at
com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
at
com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at
com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at
com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
Hi Ivan!
The fact the this code worked fine yesterday or is working fine in Dev but not in another system proves nothing. On the contrary, the stack trace confirms that the problem stems from your custom code com.vatti.mes.common.web.BaseServlet.doError(BaseServlet.java:61). The obvious thing is that the method here is called "doError" that likely means you either face some error there or intentionally generate error message. After that the system tries to log the error message but it looks as if com.sap.me.frame.Utils.getStackTrace method gets null as an input parameter e. How does it get triggered and what is passed into - this is a question to your developers.
Regards,
Sergiy
Similar Messages
-
Hi All
l am working on a Wcem 3.0 with Trex with ERP and WAS 7.3.
When I logon to http://<host>:<port>/wcb/index.html url I am able to see wcbuilder_erp & wcbuilder_erp_ume application ids.
But suddenly I am getting The website cannot display the page error message when I access the above mentioned URL.
When I verify the developer log trace it showing as 500 Internal sever error issue.[EXCEPTION] java.lang.VerifyError: Bad return type
In defaultTrace.trc file it is showing as Cannot process an HTTP request to servlet [Faces Servlet] in [wcb] web application exception.
09 10 18:08:56:098#+0530#Error#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#
com.sap.ASJ.web.000137#WEC-APP-BF#sap.com/wec~comm~wcb~leanapp#C0000A229CA7094A0000000000001188#2392750000000004#sap.com/wec~comm~wcb~leanapp#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#0##CFAFBF4C38E411E4B4750000002482AE#ffbcbcdd38e611e49d020000002482ae#ffbcbcdd38e611e49d020000002482ae#0#Thread[HTTP Worker [@455349581],5,Dedicated_Application_Thread]#Plain##
Cannot process an HTTP request to servlet [Faces Servlet] in [wcb] web application.
[EXCEPTION] java.lang.VerifyError: Bad return type
Exception Details:
Location: com/sap/wec/tc/core/runtime/jsf/resource/WecExternalContextFactory.getExternalContext(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljavax/faces/context/ExternalContext; @17: areturn
Reason: Type 'com/sap/wec/tc/core/runtime/jsf/resource/WecExternalContext' (current frame, stack[0]) is not assignable to 'javax/faces/context/ExternalContext' (from method signature)
Current Frame:
locals: { 'com/sap/wec/tc/core/runtime/jsf/resource/WecExternalContextFactory', 'java/lang/Object', 'java/lang/Object', 'java/lang/Object' }
stack: { 'com/sap/wec/tc/core/runtime/jsf/resource/WecExternalContext' }
Bytecode:
0000000: bb00 0359 2ab6 0004 2b2c 2db6 0005 b700
0000010: 06b0
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2446)
at java.lang.Class.getConstructor0(Class.java:2756)
at java.lang.Class.getConstructor(Class.java:1693)
Any help?
Regards
Rami ReddyHi Steffen,
Thanks for promt response.
But when I checked with Basis team as of now there are not yet configured TREX, only WCEM components has been configured in WAS 7.3. When they are configuring WCEM components HTTPS protocol not configured.
But for past 2 weeks I am able to see the below screen using http://<host>:<port>/wcb/index.html url.
But now I am getting The website cannot display the page error.
Please clarify me if anything is wrong from my side. And also pl let us know which configurations I have to check for fixing the issue.
Regards,
Rami Reddy -
Cannot process an HTTP request to servlet [DTRServlet]
Hi NWDI experts,
I just installed a completely new NWDI 7.4 SR1 (SP05) on Windows 2012 R2 and Oracle 11.2.0.4.
When I try to access DTR I receive error "500 Internal Server Error". In defaultTrace the system reports problems with initialization of DTR. Multiple entries exists in the various log-files and traces, which concerns the problem. I've therefore attached logs and traces to this discussion. After downloading the file rename it to .zip instead of .txt.
The error seems to be caused by a NullPointerException in oracle.jdbc.driver.OracleStatement.m_batchItems.
I've searched extensively on SCN, Notes and Google, but have not been able to find any answers to what the problem is. Also I've looked at note 774339 - Internal Server Error in DTR, but have not been able to find a useful solution.
Has anyone experienced the same error and how where you able to solve it?
Best regards,
JacobGood morning Ervin,
Thank you very much for your answer. I had a suspicion that the error was deeper in the belly of the system and not caused by DTR.
In the note you mention, it says that a new version of Oracle Client software will be delivered, which should fix the error, but do you have an idea on when it will be available for SAP customers to download?
Just as a temporary workaround I've replaced the ojdbc6.jar for 11.2.0.4 with the one from 11.2.0.3 and I'm now able to access and browse the DTR.
Best regards,
Jacob -
How to send a HTTP request to servlet in java application
I'm new in Java. I need to send a HTTP request with parameters to servlet in a java aplication. Here is my code. It can be compiled but always threw an exceptions when I ran it. Can anyone help?
package coreservlets;
import java.io.*;
import java.net.*;
public class PostHTTP
public static void main(String args[])
throws IOException, UnknownHostException {
try
// URL and servlet
URL myURL = new URL("http://pc076/servlet/coreservlets.OffHold");
URLConnection c = myURL.openConnection();
c.setUseCaches(false);
c.setDoOutput(true);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(512);
PrintWriter out = new PrintWriter(byteStream, true);
//parameters
String postData = "REASON_CODE=3B&RSPCODE=JSmith&CASENUM=NA795401&REPLY=123&SOURCE=XYZ&REPLYLINK=http://pc076/servlet/coreservlets.ShowParameters";
out.print(postData);
out.flush();
String lengthString = String.valueOf(byteStream.size());
c.setRequestProperty("Content-Length", lengthString);
c.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
byteStream.writeTo(c.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader
(c.getInputStream()));
String line;
//String linefeed = "\n";
//resultsArea.setText("");
while((line = in.readLine()) != null) {
System.out.println(line);
//resultsArea.append(linefeed);
catch(IOException ioe) {
// Print debug info in Java Console
System.out.println("IOException: " + ioe);here are some updates to your code I haven't tested it running
post again if you still have trouble
URL myURL = new URL("http://pc076/servlet/coreservlets.OffHold");
HttpURLConnection c = (HttpURLConnection)myURL.openConnection();
c.setDoInput(true);
c.setDoOutput(true);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(512);
String lengthString = String.valueOf(byteStream.size());
c.setRequestProperty("Content-Length", lengthString);
c.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
PrintWriter out = new PrintWriter(byteStream, true);
//parameters
String postData = "REASON_CODE=3B&RSPCODE=JSmith&CASENUM=NA795401&REPLY=123&SOURCE=XYZ&REPLYLINK=http://pc076/servlet/coreservlets.ShowParameters";
out.print(postData);
out.flush();
byteStream.writeTo(c.getOutputStream());
// connect
c.connect();
BufferedReader in = new BufferedReader(new InputStreamReader
(c.getInputStream()));
String line;
while((line = in.readLine()) != null)
System.out.println(line); -
Doing an http request in servlet
What's the code to do an http request in a servlet? I mean I have my servlet printing out links, but if I want it to use those links instead and print out what is contained on the following pages, I would need to do some kind of request and parse the response myself correct?
What's the code to do an http request in a servlet?
I mean I have my servlet printing out links, but if I
want it to use those links instead and print out what
is contained on the following pages, I would need to
do some kind of request and parse the response myself
correct?Correct. Thought about something like this:
URL servletUrl = new URL("http://www.google.com/search?q=how+to+call+a+servlet+from+a+servlet");
InputStream in = servletUrl.getInputStream();Actual coding may vary. -
Detect server node processing a http request
Is there any way to detect which server node is answering a http request? For debug purposes I would like to add the cluster element to the output of a jsp. Maybe it is also possible to force a jsp being processed by a given node?
Thanks in advance for your answers!
Best regards,
FrankHi Violeta,
Thanks for your answer! This has been very helpful indeed.
However, I´m still a bit puzzled. Replacing the saplb cookie forces the load balancer to use the given server, but the JSESSIONID does not change. Looking at the application data I know that I´m talking to a different server, but I still don´t seem to have a way to tell which server ansered - except my expectation that the saplb cookie might have been taken into account by the server.
Isn´t there a more sophisticated way to access this kind of information? Escpecially, getting a list of all available servers would be great, as this would allow to choose the server having a look at.
Best regards,
Frank -
How to call jsp /servlets running in different web application in tomcat
hello all,
i have 2 web applications(Charts and Reports) in the same tomcat,i want to call jsp/servlets running in the Reports webapp from Charts webapp.how do i achieve this.
thanx
raviYou can also use getContext(String context) in the ServletContext class to get a request dispatcher.
Using the above example it would be :
// in a servlet in the charts webapp
ServletContext context = getServletContext();
ServletContext reportsContext = context.getContext("/reports");
RequestDispatcher dispatcher = reportsContext.getRequestDispatcher("/path")
dispatcher.forward(request, response);Just note, that depending on your server's configuration getContext(...) might return null. -
Hi
I just did a system copy for portal 7.0 from my production to quality system.
The import finished successfully and java instance is up and running
We were earlier using jdk 1.4.2 , but moved to JVM 6.1 during the import of the java stack and now the java application is using JVM 6.1 instead of JDK 1.4.2
I m getting the attached error when i m trying to connect with main page of the portal
Plz let me know why is this happenning?
Thanks and Regards
TusharHi
Have you tried in any other browser ?
Check the detailed error log in defaultTrace file under /usr/sap/SID/<INSTANCE>/j2ee/cluser/server0/log.
Open the page again and check defaulttrace in above directory
Regards, -
DTRServlet - 500 Internal Server Error is returned for HTTP request
Hi everybody,
I've got a Problem with my DTR.
Recently we've set up the new CE 7.2 System.
The DTR has run until about 3 hours ago.
I don't know what I've done that this error occurs, but I'm nearly shure that I haven't done anything that depends on the dtr.
I went through the set up wizzard of "Connect Design Time for Visual Composer with NWDI" again, but nothing changed.
Can you please help me with this issue?!
Thank you and best regards
julian
This is the text from the application log:
#2.0 #2010 08 20 15:02:47:398#+0200#Info#/Applications/DTR/Lifecycle#
lifecycle.startApplicationInitialisation#BC-CTS-DTR-SRV#sap.com/tcdtrenterpriseapp#005056BA56AE050000000000000010D8#1694250000000004#sap.com/tcdtrenter
priseapp#com.tssap.dtr.server.servlet.WebdavServlet#Guest#0##F30581C3AC5A11DFCAED00000019DA2A#f30581c3ac5
a11dfcaed00000019da2a#f30581c3ac5a11dfcaed00000019da2a#0#Thread[HTTP Worker [@1902689675],5,Dedicated_Application_Thread]#Plain#com.tssap.dtr.server.deltav.resources.log_messages#
Starting initialisation of DTR application.#
#2.0 #2010 08 20 15:02:47:405#+0200#Fatal#/Applications/DTR/Lifecycle#
com.sap.DI.dtr.090009#BC-CTS-DTR-SRV#sap.com/tcdtrenterpriseapp#005056BA56AE050000000001000010D8#1694250000000004#sap.com/tcdtrente
rpriseapp#com.tssap.dtr.server.servlet.WebdavServlet#Guest#0##F30581C3AC5A11DFCAED00000019DA2A#f30581c3ac5
a11dfcaed00000019da2a#f30581c3ac5a11dfcaed00000019da2a#0#Thread[HTTP Worker [@1902689675],5,Dedicated_Application_Thread]#Plain#com.tssap.dtr.server.deltav.resources.log_messages#
Initialisation of DTR application failed. Please refer to SAP note 774339 for more details on how to analyze the error condition.#
And this is the message from the Default Trace: (not all, that didn't fit in this thread)
#2.0 #2010 08 20 15:13:49:744#+0200#Error#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#
com.sap.ASJ.web.000137#BC-CTS-DTR-SRV#sap.com/tcdtrenterpriseapp#005056BA56AE05D600000002000010D8#1694250000000004#sap.com/tcdtrent
erpriseapp#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Guest#0##7F3F3C0AAC5A11DF869E00000019D
A2A#7db05704ac5c11dfa28500000019da2a#7db05704ac5c11dfa28500000019da2a#0#Thread[HTTP Worker [@236433360],5,Dedicated_Application_Thread]#Plain##
Cannot process an HTTP request to servlet [DTRServlet] in [dtr] web application.
[EXCEPTION]
javax.servlet.ServletException: WebdavServlet.init() failed : com.tssap.dtr.pvc.basics.cluster.TaskFailedException: Connection is invalid.
at com.tssap.dtr.server.servlet.WebdavServlet.init(WebdavServlet.java:471)
at javax.servlet.GenericServlet.init(GenericServlet.java:270)
at com.sap.engine.services.servlets_jsp.server.application.WebComponents.getServlet(WebComponents.java:864)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:326)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:203)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:438)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:427)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
Caused by: com.tssap.dtr.pvc.basics.cluster.TaskFailedException: Connection is invalid.
at com.tssap.dtr.pvc.basics.cluster.ClusterExclusiveTaskRunner.start(ClusterExclusiveTaskRunner.java:54)
at com.tssap.dtr.server.deltav.impl.Repository.initialize(Repository.java:643)
at com.tssap.dtr.server.deltav.impl.Repository.initialize(Repository.java:613)
at com.tssap.dtr.server.servlet.WebdavServlet.initializeDeltaV(WebdavServlet.java:556)
at com.tssap.dtr.server.servlet.WebdavServlet.init(WebdavServlet.java:462)
... 36 more
Caused by: com.tssap.dtr.pvc.util.sql.SQLRuntimeException: Connection is invalid.
at com.tssap.dtr.pvc.util.sql.GenericStatementProvider.prepareStatement(GenericStatementProvider.java:75)
at com.tssap.dtr.pvc.util.sql.GenericStatementProvider._getPreparedStatement(GenericStatementProvider.java:62)
at com.tssap.dtr.pvc.util.sql.GenericStatementProvider.getPreparedStatement(GenericStatementProvider.java:44)
at com.tssap.dtr.pvc.basics.persistence.PersistentClass.getPreparedStatement(PersistentClass.java:148)
at com.tssap.dtr.pvc.repository.TaggedValuePersistentClass.loadTaggedValue(TaggedValuePersistentClass.java:113)
at com.tssap.dtr.pvc.repository.TaggedValueTransientClass.loadTaggedValue(TaggedValueTransientClass.java:51)
at com.tssap.dtr.pvc.repository.RepositoryManager._checkDbInitialization(RepositoryManager.java:288)
at com.tssap.dtr.pvc.repository.RepositoryManager.isDbInitialized(RepositoryManager.java:1128)
at com.tssap.dtr.server.deltav.impl.Repository.initializeDeltaV(Repository.java:558)
at com.tssap.dtr.server.deltav.impl.Repository$1.run(Repository.java:645)
at com.tssap.dtr.pvc.basics.cluster.ClusterExclusiveTaskRunner.startTask(ClusterExclusiveTaskRunner.java:65)
at com.tssap.dtr.pvc.basics.cluster.ClusterExclusiveTaskRunner.start(ClusterExclusiveTaskRunner.java:51)
... 40 more
Caused by: com.sap.engine.services.dbpool.exceptions.BaseSQLException: Connection is invalid.
at com.sap.engine.services.dbpool.cci.ConnectionHandle.checkIfInvalid(ConnectionHandle.java:652)
at com.sap.engine.services.dbpool.cci.ConnectionHandle.checkIfValid(ConnectionHandle.java:639)
at com.sap.engine.services.dbpool.cci.ConnectionHandle.prepareStatement(ConnectionHandle.java:113)
at com.tssap.dtr.pvc.basics.transaction.SharedConnection.prepareStatement(SharedConnection.java:131)
at com.tssap.dtr.pvc.util.sql.GenericStatementProvider.prepareStatement(GenericStatementProvider.java:73)
... 51 moreHello Julian
This is a known problem.
Cause
- A user may have been added to a group in another ldap tree with a name, that is already existing.
- When DTR retrieves the group from UME, we get 2 similar group names, but the groups may be different.
- DTR cannot handle this and throws "Internal Server error"
Resolution
If you change parameter "ume.ldap.unigue_grup_attribute" to 'uid', DTR doesn't use the groupname,
but the group-uid, therefore the group is unique.
1. open Visual Administrator
2. choose Services
3. choose UME Provider
4. Reset "ume.ldap.unigue_grup_attribute" with 'uid'
5. restart the system
Thanks
Kenny. -
How to Intercept Http requests by Application Server plugin ?
Hi all,
My requirement of "Application Server plugin/filter" is to intercept all Httprequests coming to an
Application Server instance (and not webserver), get the related information from the request, do whatever
i want to do and then forward the request based on the info available in the request header to any webapplication or EAR deployed in the application server.
I do not want to implement as a Servlet filter in a webapp. which is intrusive to the webapp.
as we are aware, Servlet Filters can be attached to resources in a Web application and are configured in the web.xml file.
I have tried out my requirements in Tomcat as follows, it works:
In Tomcat, Valves are attached to a Tomcat container and are configured using a <Valve> element in the server.xml file.
We have modified RequestDumperValve Filter ( source available) class extending Valve to intercept Http requests.
I perform whatever i want to do in this custom Filter and then able to forward to the next valve in the valve chain of Tomcat container. I have Configured this valve in server.xml and it works fine.
My queries are:
1. Can i do it the same thing in SunONe application server or other IBM Websphere application server ?
2. Do the commercial appservers expose their APIs ( e.g. like Valve in Tomcat ) such that i can implement an application server plugin ?
i.e. Are there any such Filter classes available which will intercept the Http request processing pipleine
in application server ( precisely, its web container )
If so, can you pls provide pointers for SunONE application server and IBM Webpshere application server
3. Is this against J2ee specs ?
Appreciate if you can provide me any clues, tips, solutions, pointers regarding this problem.
thanks and regards
rajeshThanks for the info, vbk.
Actually we are looking filers not at the servlet level in a web application.
We are looking ways for the filter to work at web container level across different web applications... That is whatever comes to the application server, should hit at this filter ,then we perform some processing, analysis and then continue for the correspnding web application
thanks
rajesh -
Is it possible to send several http requests at the same time?
hi:
is it possible to send several http requests at the same time in j2me application, or it's device specific.
It's ok in my NOKIA SYMBIAN C++ application.
regards
Message was edited by:
danielwangIs it possible to have 2 threads running at the same
time at different times eg 1 repeats every 20
miliseconds and the other 40 for example. Yes.
http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html -
I have two forests with a transitive on-way trust between them: PROD -> TEST (test trusts PROD). I had previously had kerberos authentication working with winrm from PROD to machines in TEST. I have verified the trust is healthy, I also verified users
in TEST can use WINRM with kerberos just fine. Users from PROD cannot connect via kerberos to machines in TEST with winrm.
I have verified the service has registered the appropriate SPNs. I ran dcdiag against all my PROD and TEST domain controllers and didn't find anything that would prevent kerberos from happening. I even tried disabling the firewall entirely on my TEST dcs
but that didn't gain me anything.
I've enabled kerberos logging but only see the expected errors such as it couldn't find a PROD SPN for the machine, which it shouldn't from what I understand, it should go to the TEST domain and find the SPN from there.
I'm really out of next steps before I call PSS and hope someone here has run into this and could provide me some next steps.
PowerShell Error:
Connecting to remote server failed with the following error message : WinRM cannot process the request. The following error occured while using Kerberos authentication: The network path was not found.
Possible causes are:
-The user name or password specified are invalid.
-Kerberos is used when no authentication method and no user name are specified.
-Kerberos accepts domain user names, but not local user names.
-The Service Principal Name (SPN) for the remote computer name and port does not exist.
-The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
-Check the Event Viewer for events related to authentication.
-Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
-For more information about WinRM configuration, run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (:) [], PSRemotingTransportException
+ FullyQualifiedErrorId : PSSessionStateBroken
winrs Error:
Winrs error:
WinRM cannot process the request. The following error occured while using Kerberos authentication: The network path was not found.
Possible causes are:
-The user name or password specified are invalid.
-Kerberos is used when no authentication method and no user name are specified.
-Kerberos accepts domain user names, but not local user names.
-The Service Principal Name (SPN) for the remote computer name and port does not exist.
-The client and remote computers are in different domains and there is no trust between the two domains.
After checking for the above issues, try the following:
-Check the Event Viewer for events related to authentication.
-Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
Note that computers in the TrustedHosts list might not be authenticated.
-For more information about WinRM configuration, run the following command: winrm help config.Hi Adam,
I'm a little unclear about which SPNs you were looking for, in which case could you confirm you were checking that on the computer object belonging to the actual destination host it has the following SPNs registered?
WSMAN/<NetBIOS name>
WSMAN/<FQDN>
If you were actually trying to use WinRM to connect to the remote forest's domain controllers, then what you said makes sense, but I was caught between assuming this was the case or you meant another member server in that remote forest.
Also, from the client trying to connect to this remote server, are you able to telnet to port 5985? (If you've used something other than the default, try that port)
If you can't, then you've got something else like a firewall (be that the Windows firewall on the destination or a hardware firewall somewhere in between) blocking you at the port level, or the listener on the remote box just isn't working as expected. I
just replied to your other winrm post with steps for checking the latter, so I won't repeat myself here.
If you can telnet to it and the SPNs exist, then you might be up against something called selective authentication which has to do with how the trust was defined. You can have a read of
this to learn a bit more about selective trusts and whether or not it's affecting you.
Cheers,
Lain -
Hi all,
I encountered the following 2 servlet problems in WLS 6.0/ 6.1:
1. Processing concurrent POST requests
WLS seems to disallow concurrent executions of any servlet's doPost servlet method.
When two clients attempt to send a request to a servlet using POST, the socond
one
is blocked until the first customer is served. In essence, the servlet ends up
operating in
1-user mode. I just learned from Jervis Liu that the problem is solved in WLS6.0
if you disable http-keepalive.
For WLS 6.1 a partial workaround is to make the servlet work in a single-thread
mode (by implementing the javax.servlet.SingleThreadModel interface). In this
case,
WLS dispatches concurrent requests to different instances of the servlet.
This doesn't completely eliminate the problem - still only one customer can be
connected at a time. The improvement is that once the first customer is disconnects,
the second can be served even if the doPost method for the first has not finished
yet.
2. Flushing the response buffer in WLS 6.1
The servlet response buffer is not flushed automatically until doPost ends, unless
you
explicitly call response.flushBuffer(). Closing the output stream doesn't flush
the
buffer as per the documentation.
I see that other people are experiencing the same problems.
Has anyone found any solutions/workarounds or at least an explanation.
Any input would be highly appreciated.
Thanks in advance.
Samuel Kounev
Thanks for replying. Here my answers:
> Did you mark your doPost as synchronized?
No.
> Also, try testing w/ native i/o vs not ... is there a difference?
With native I/O turned off I get a little lower performance, but the
difference is not too big.
Best,
Samuel Kounev
> Peace,
>
> --
> Cameron Purdy
> Tangosol Inc.
> << Tangosol Server: How Weblogic applications are customized >>
> << Download now from http://www.tangosol.com/download.jsp >>
>
> "Samuel Kounev" <[email protected]> wrote in message
> news:[email protected]...
> >
> > Hi all,
> >
> > I encountered the following 2 servlet problems in WLS 6.0/ 6.1:
> >
> > 1. Processing concurrent POST requests
> >
> > WLS seems to disallow concurrent executions of any servlet's doPost
> servlet method.
> >
> > When two clients attempt to send a request to a servlet using POST, the
> socond
> > one
> > is blocked until the first customer is served. In essence, the servlet
> ends up
> > operating in
> > 1-user mode. I just learned from Jervis Liu that the problem is solved in
> WLS6.0
> >
> > if you disable http-keepalive.
> >
> > For WLS 6.1 a partial workaround is to make the servlet work in a
> single-thread
> >
> > mode (by implementing the javax.servlet.SingleThreadModel interface). In
> this
> > case,
> > WLS dispatches concurrent requests to different instances of the servlet.
> > This doesn't completely eliminate the problem - still only one customer
> can be
> >
> > connected at a time. The improvement is that once the first customer is
> disconnects,
> > the second can be served even if the doPost method for the first has not
> finished
> > yet.
> >
> > 2. Flushing the response buffer in WLS 6.1
> > The servlet response buffer is not flushed automatically until doPost
> ends, unless
> > you
> > explicitly call response.flushBuffer(). Closing the output stream doesn't
> flush
> > the
> > buffer as per the documentation.
> >
> > I see that other people are experiencing the same problems.
> >
> > Has anyone found any solutions/workarounds or at least an explanation.
> > Any input would be highly appreciated.
> >
> > Thanks in advance.
> >
> > Samuel Kounev
=====================================================
Samuel D. Kounev
Darmstadt University of Technology
Department of Computer Science
DVS1 - Databases & Distributed Systems Group
Tel: +49 (6151) 16-6231
Fax: +49 (6151) 16-6229
E-mail: mailto:[email protected]
http://www.dvs1.informatik.tu-darmstadt.de
http://skounev.cjb.net
=====================================================
[att1.html]
-
Re: Servlet making HTTP requests
Hi,
We are using an application that uses a servlet to perform some JDBC calls
(which take about 30 minutes) and then make some HTTP requests (which takes
about 5 to 10 minutes) to another application.
Once the client has made the request to initiate this process it waits for
the complete process (40 minutes) to complete. I know this is not ideal but
its what we've got to live with.
After a minute or so after the servlet has started making the HTTP requests
the browser stops responding and has a blank frame displayed instead of the
response data. We have assumed that after the servlet makes the HTTP
requests the other application it is not interacting with the HTTP session
on the server the client is connected to and a timeout occurrs. This
termintes the request and is why we see a blank frame. Is this correct ? The
HTTP requests complete successfully in the background.
Any advice would be greatly appreciated.
Kev
Your application is really tough and interesting. Web browser usually has timeout
limit. Proxy server also has timeout limit (usually 30 seconds). If no communication
after such kind of timeout limit, your browser will stop.
When your code calls getWriter() or getOutputStream(), your servlet will flush
all HTTP response header data to your browser and your browser then will get the
response from your servlet. Beyond that, if you don't send any data from your
servlet to your browser before proxy or browser timeout, you can only get a blank
screen.
If you want to monitor how your servlet works, try to BUILD INTERCATION. At least,
send data from your servlet to your browser for each time interval which will
not be longer than browser/proxy timeout. You can send out any information you
like, if your browser understand it. NOTE YOU SHOULD EXPLICITLY CALL FLUSH() of
your OutputStream() or Writer() to flush() your data following each write(). This
way, you can keep the connection alive.
On the other hand, you can also try set content-length field of response to some
predefined number, and set Connection field as Keep-Alive, before you call getWriter()
or getOutputStream(). Then send some data to your browser, for example, one byte
at a time, until you have sent the number of bytes as specified.
"Kev" <[email protected]> wrote:
>Hi,
>
>We are using an application that uses a servlet to perform some JDBC
>calls
>(which take about 30 minutes) and then make some HTTP requests (which
>takes
>about 5 to 10 minutes) to another application.
>
>Once the client has made the request to initiate this process it waits
>for
>the complete process (40 minutes) to complete. I know this is not ideal
>but
>its what we've got to live with.
>
>After a minute or so after the servlet has started making the HTTP requests
>the browser stops responding and has a blank frame displayed instead
>of the
>response data. We have assumed that after the servlet makes the HTTP
>requests the other application it is not interacting with the HTTP session
>on the server the client is connected to and a timeout occurrs. This
>termintes the request and is why we see a blank frame. Is this correct
>? The
>HTTP requests complete successfully in the background.
>
>Any advice would be greatly appreciated.
>
>Kev
>
>
-
Windows Server 2008 Server Manager - The WinRM Client Cannot Process the Request.
Hello,
I have recently purchased a Dedicated Server, and I have installed Windows Server 2008 R2. I want to use Server Manager because I don't really have that much experience with command line commands, so I wanted to use server manager, I can remotely connect
to my server but when I use Server Manager I get the error "The WinRM Client Cannot Process the Request, if the authentication scheme is different from Kerberos..." I haven't set up a domain between my PC and the Dedi, as I do not know how/or know
if this is applicable in this situation.
Thanks for your time!
Bill Gates MateHi,
If you are using the non-domain management method, please refer the following article to add the trust host.
The related article:
Remoting Week: Non-Domain Remoting
http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/29/remoting-week-non-domain-remoting.aspx
More third party article:
The WinRM client cannot process the request. If the authentication scheme is different
http://technico.qnownow.com/the-winrm-client-cannot-process-the-request-if-the-authentication-scheme-is-different/
I’m glad to be of help to you!
*** This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites;
therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure
that you completely understand the risk before retrieving any software from the Internet. ***
We
are trying to better understand customer views on social support experience, so your participation in this
interview project would be greatly appreciated if you have time.
Thanks for helping make community forums a great place.
Maybe you are looking for
-
How to increase AFP data transfer speed?
When I connect to our server from a WAN source outside of our facility the file data transfer rate is extremely slow. We just upgraded to a 10Mps fiber service and that has dematically increased our website data tranfer speed. I would like to find a
-
Windows 8.1 - Brightness control issues!!
Microsoft - Nowhere in all the communications you've posted here have you even remotely taken responsibility for this bug! The first time we go to adjust the screen brightness after updating to 8.1 - the screen goes down to it's minimum brightness se
-
Cordova and SMP in different systems ?
Can i work with if cordova and smp are in different systems ? The Cordova is in my local system and SMP is in another server .
-
Hi. is there a way to define an approval workflow by each provisioning Task? ie: I have a resource which uses a form to provision users and a child form to assign allowed Areas, but each area I can add has a different approver. So I want, the main fo
-
Second Time Base in LabVIEW DSC 7.0
Did anyone know, how we can write externally logged data with their own timestamps into the Citadel database in LabVIEW DSC? In Lookout it works fine with the "Logger" Object.