IllegalStateException : sesssion.invalidate() with sp9
I am using Weblogic 5.1 with sp9. I was told this has been fixed in sp12 but I need
to fix this with sp9 for now. Just wondering if anyone found an easy fix for sp9.
When I use session.invalidate()in JSP page, it throws IllegalStateException if it
is first JSP page or servlet (i.e. first session) in that browser. <%session.invalidate();%>
is the last line of this JSP.
java.lang.IllegalStateException: HttpSession is invalid
at weblogic.servlet.internal.session.SessionData.getAttribute(SessionDat
a.java:159)
at weblogic.servlet.internal.session.SessionData.getValue(SessionData.ja
va:131)
at weblogic.servlet.internal.ServletRequestImpl.getRemoteUser(ServletReq
uestImpl.java:668)
at weblogic.t3.srvr.httplog.CLFLogger.log(CLFLogger.java:46)
at weblogic.t3.srvr.httplog.LogManagerHttp.log(LogManagerHttp.java:421)
at weblogic.t3.srvr.HttpServer.log(HttpServer.java:882)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
ContextManager.java:309)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
a:365)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
I guess the following is the reason. When this JSP gets compiled, try catch finally
block is generated surrounding session.invalidate(). After current session gets invalidated,
finally block is executed and it seems that's where the exception gets thrown.
// this is generated by compiler
finally{
while (_activeTag != null) {
// release() all active tags...
Tag tmpTag = activeTag;
activeTag = activeTag.getParent();
try { _tmpTag.release(); } catch (Exception __ignore) {}
I can't think clean simple fix for this. Either change this compiled java code manually
(put another try catch inside finally) or use server side redirection and put session.invalidate
in second page. Both workarounds are pretty ugly.
Hi
This works, here is a sample I've run on OC4J
public class SessionTestServlet extends HttpServlet
private static final String CONTENT_TYPE = "text/html";
HttpSession sess = null;
private static boolean login_page = true;
public void init(ServletConfig config) throws ServletException
super.init(config);
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException
sess = request.getSession(true);
try
if (login_page)
if(sess != null)
sess.invalidate();
sess = request.getSession(true);
sess.setAttribute("name","kalle");
catch(Exception e)
e.printStackTrace();
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println
("<head><title>SessionTestServlet</title></head>");
out.println("<body>");
out.println("<p>Session: "+ sess+"<p>Name: "+
sess.getAttribute("name"));
out.println("</body></html>");
out.close();
Regards
//Mike
Similar Messages
-
Installation failed NW2004s with SP9 (Java Trail Version) failed
Hi All,
I am trying to install NW2004s with SP9 (Java Trail Version) , that's failing Phase 14 of 32 in CreateDatabaseInstance failing.
<b>This is the log :
</b>
ERROR 2007-05-19 19:43:40
The dbmcli call for action PARAM_INIT_INST failed. Check the logfile XCMDOUT.LOG.
ERROR 2007-05-19 19:43:53
The dbmcli call for action PARAM_INIT_INST failed. Check the logfile XCMDOUT.LOG.
ERROR 2007-05-19 19:43:53
FCO-00011 The step sdb_init_instance_type with step key |NW_Java_OneHost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|1|0|NW_CreateDBandLoad|ind|ind|ind|ind|9|0|NW_CreateDB|ind|ind|ind|ind|0|0|NW_ADA_DB|ind|ind|ind|ind|6|0|SdbPreInstanceDialogs|ind|ind|ind|ind|3|0|SdbInstanceDialogs|ind|ind|ind|ind|1|0|SDB_INSTANCE_CREATE|ind|ind|ind|ind|0|0|sdb_init_instance_type was executed with status ERROR .
Please suggest what is going wrong.
Thanks in advance.
AWI got the same error, this is from my XCMDOUT.LOG
> Subprocess starts at 20070528020028
Execute Command : c:\sapdb\programs\pgm\dbmcli.exe -n microdot-c01534 -d J2E -u CONTROL,******** db_start
Execute Session Command : exit
> Subprocess stops at 20070528020029
> Subprocess call failed
ERR
-24961,ERR_STATE: cannot determine current db state -
hi,
When we update sp8 to sp9, there is one jsp page not working.
method: _jspService signature:
Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletRespon
se;)V) Register 12 contains wrong type
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance0(Compiled Code)
at java.lang.Class.newInstance(Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.createServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletStubImpl.createInstances(Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(Compiled
Code)
at weblogic.servlet.jsp.JspStub.prepareServlet(Compiled Code)
at weblogic.servlet.jsp.JspStub.checkForReload(Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.getServlet(Compiled
Code)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(Compiled Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(Compiled Code)
at
weblogic.servlet.internal.ServletContextManager.invokeServlet(Compiled Code)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(Compiled Code)
at weblogic.socket.MuxableSocketHTTP.execute(Compiled Code)
at weblogic.kernel.ExecuteThread.run(Compiled Code)
Did anyone get same jsp issue with sp9?
Our environment is WL5.1 WL JDriver Oracle815 Client + Oracle815
Server + Solaris 2.6
Any suggestion would be greately appreciated!
Thanks!I have the same problem, (WL5.1, java 1.2.2_07, Solaris 7),
after adding '-noverify' to java starting parameters, it looks ok.
"[email protected]" <[email protected]> wrote:
>
Perhaps you are using a JDK that needs inlining turned off - See the
platform support
page -
http://www.weblogic.com/docs51/platforms/index.html
"Louis" <[email protected]> wrote:
I tried that way. I was not working.
JDK.1.2.2_07
Thanks!
"mike" <[email protected]> wrote in message
news:[email protected]...
never seen that before.
try deleting all the .class files generated from jsps. then
restart your server.
what jdk?
mike
"Louis" <[email protected]> wrote:
hi,
When we update sp8 to sp9, there is one jsp page not working.
method: _jspService signature:Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletRespon
se;)V) Register 12 contains wrong type
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance0(Compiled Code)
at java.lang.Class.newInstance(Compiled Code)
atweblogic.servlet.internal.ServletStubImpl.createServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletStubImpl.createInstances(CompiledCode)
atweblogic.servlet.internal.ServletStubImpl.prepareServlet(Compiled
Code)
at weblogic.servlet.jsp.JspStub.prepareServlet(Compiled Code)
at weblogic.servlet.jsp.JspStub.checkForReload(Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.getServlet(Compiled
Code)
atweblogic.servlet.internal.ServletStubImpl.invokeServlet(Compiled
Code)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(CompiledCode)
at
weblogic.servlet.internal.ServletContextImpl.invokeServlet(CompiledCode)
at
weblogic.servlet.internal.ServletContextManager.invokeServlet(Compiled
Code)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(CompiledCode)
at weblogic.socket.MuxableSocketHTTP.execute(Compiled Code)
at weblogic.kernel.ExecuteThread.run(Compiled Code)
Did anyone get same jsp issue with sp9?
Our environment is WL5.1 WL JDriver Oracle815 Client + Oracle815
Server + Solaris 2.6
Any suggestion would be greately appreciated!
Thanks! -
Portlet question- session.invalidate()- with weblogic
Guys:
Has anyone had a issue with session.invalidate() using weblogic 8.1.
we have vignette and weblogic 8.1.
the problem i have noticed is session.getId retunrns a extra timestamp string in the end. And i am thinking since this changes the entire sessionid, it does not get invalidated. I tried adjusting the weblogic.xml's idlength session-param to 52 but this still happens after that. can anyone suggest any insights. i am unable to kill the session and hence the user is always logged in. the only way is to close to broswer window.
session id:
F1z2YTQMyD3Yy1Xs4VBHyq3M7LWVfYMnvWJgYLnrR3cPYnKL9NW9!-682555724!1170191618061
any help will be appreciated..thanks.
Harshi havent gone to weblogic support yet. Want to check
if anyone of us might have seen a similar issue.I haven't used weblogic in a while. I doubt many people here have. I would suggest you ask on a weblogic forum. This is a java forum. -
Having issues with SP9 and IDMUI5/IDMREST SCA files
Hello,
I've been working through an upgrade to SP9 and have run into two issues related to some SCA files. I'm hoping others might be able to shed some light on how to resolve them. The issues primarily focus on unresolved dependencies for files I'm unable to locate.
*Prior to performing this upgrade I downloaded all relevant SP9 files.
In performing this upgrade, I've followed these steps:
1) update database schema. completed successfully
2) upgrade the runtime components. completed successfully
3) upgrade the management console. completed successfully
4) deploy IDM user interface on NW 7.3. This is where I ran into problems.
Problem #1 - the IDMUI5 SCA file does not pass the validation check.
- it states there is an unresolved dependency.
- sap.com/tc~idm~rest~ear was not found
Problem #2 - the IDMREST SCA file does not pass the validation check.
- it states there are two unresolved dependencies
- sap.com/tc~odata4j~primary was not found
- sap.com/tc~jax~rs~primary was not found
What I'd like to understand is where the files required by IMDUI5 and IDMREST exist and how to complete the upgrade for them.
Thanks, PaulI think this is the odata4 that you need for 7.3
SCA
ODATACXFEXT11_0-10012140.SCA
SP11 for SAP ODATA4J+CXF-REST LIB 7.30
0
Info
10352
26.02.2014
This might be the only package you need; it might be in your best interest to avoid manually downloading files and rely upon Solution Manager's MOpz feature to query your IdM system and let it track down all the needed packages. -
ViewExpiredException issue with session invalidate on IE9
Hi guys,
I have posted this on the ADF forum as well as I'm not sure of the root cause is JHeadstart related or not - but I thought I would check also here to see if anyone else has encountered this ...
I'm using JDeveloper 11.1.1.6 (JHeadstart 11.1.1.4.26) and having problems when calling "session.invalidate();" with my custom JhsAuthenticationFilter. If i log on and immediately log out (so no web.xml timeout which is set to 25 min) - The message shown on screen is
"Because of inactivity, your session is timed out and is no longer active. Click on OK to reload the page"
In the log files, the following error is thrown
<BindingContext> <put> [3126] Replacing: null with: XXXXX_UIShellPageDef
<StateManagerImpl> <restoreView> Could not find saved view state for token -a6jozll3a
<LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RESTORE_VIEW 1
javax.faces.application.ViewExpiredException: viewId:/pages/UIShell.jspx - ADF_FACES-30107:The view state of the page has expired. Reload the page.
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:751)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:374)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at hmdclinical.pulse.view.PulseAuthenticationFilter.doFilter(PulseAuthenticationFilter.java:273)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
<ADFLogger> <addContextData> Execute queryI have the web.xml parameter org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS set to 15.
This ONLY happens when using IE9 - using Firefox or Chrome it's not a problem. I'm guessing something is trying to access the page def after the token for the view has already been removed as part of the session.invalidate() ?
How can I find out what the root cause is and why is this only a problem with IE and not Chrome or Firefox ?
Any help greatly appreciated !!
Cheers,
BrentBrent,
I think it is best to make a very simple testcase without JHeadstart (you can cust and paste code from the jhs auth fillter as needed) and then attach your testcase to the post on JDev forum, or copntact Oracle support.
Looks like a browser-specific ADF bug to me.
Steven Davelaar,
JHeadstart Team. -
Sp9 / pre-release / problem with jsp tags
WLS 5.1, sp9 pre-release, solaris 2.7, WLCS 3.2
JSP compile fails with the exception...
weblogic.servlet.jsp.JspException: (line -1): Error in tag library
at: 'wl':
The Tag class 'weblogicx.jsp.tags.CacheTag' has no setter method
corresponding to
TLD declared attribute 'async', (JSP 1.1 spec, 5.4.1)
at weblogic.servlet.jsp.StandardTagLib.jspException(StandardTagLib.java:138)
at weblogic.servlet.jsp.StandardTagLib.processTag(StandardTagLib.java:264)
at weblogic.servlet.jsp.StandardTagLib.processTagElements(StandardTagLib.java:146)
at weblogic.servlet.jsp.StandardTagLib.<init>(StandardTagLib.java:125)
at weblogic.servlet.jsp.JspLexer.loadTagLib(JspLexer.java:95)
at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE_BODY(JspLexer.java:3873)
at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE(JspLexer.java:3623)
at weblogic.servlet.jsp.JspLexer.mDIRECTIVE(JspLexer.java:3484)
at weblogic.servlet.jsp.JspLexer.mSTANDARD_THING(JspLexer.java:1817)
at weblogic.servlet.jsp.JspLexer.mTOKEN(JspLexer.java:1658)
at weblogic.servlet.jsp.JspLexer.nextToken(JspLexer.java:1548)
at weblogic.servlet.jsp.JspLexer.parse(JspLexer.java:888)
at weblogic.servlet.jsp.JspParser.doit(JspParser.java:69)
at weblogic.servlet.jsp.JspParser.parse(JspParser.java:125)
at weblogic.servlet.jsp.Jsp2Java.outputs(Jsp2Java.java:109)
at weblogic.utils.compiler.CodeGenerator.generate(CodeGenerator.java:242
It could just be me - I an un-jarred a version of weblogic-tags-510.jar where WLS
could find it.
mike
Kumar Allamraju <[email protected]> wrote:
>Yes, my JSP is referring the tag libs. I 'm using counter example given
>in
>examples/jsp/tagext/counter directory
>
><NT Performance Pack> NATIVE: created IoCompletionPort successfully.
>I
>oPort=0x000001d4
>Sun Apr 01 12:44:00 PDT 2001:<I> <WebLogicServer> WebLogic Server star
>ted
>Sun Apr 01 12:44:40 PDT 2001:<I> <NT Performance Pack> Allocating: '2'
> NT reader threads
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: init
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> verbose initialized to: true
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> packagePrefix initialized to: jsp_servlet
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> compileCommand initialized to: c:/java/java122/bin/javac.exe
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> srcCompiler initialized to weblogic.jspc
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> superclass initialized to null
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> workingDir initialized to: D:\releases\510\myserver\classfiles
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: param
> pageCheckSeconds initialized to: 1
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: Using
> Encoding : ISO-8859-1 when constructing PrintWriter instead of Servle
>tOutputStream
>Sun Apr 01 12:44:41 PDT 2001:<I> <ServletContext-General> *.jsp: initi
>alization complete
>Sun Apr 01 12:44:42 PDT 2001:<I> <ServletContext-General> looking for
>taglib uri /counter.tld as resource /WEB-INF/counter.tld in Web Applic
>ation root:
>Sun Apr 01 12:44:43 PDT 2001:<I> <ServletContext-General> Generated ja
>va file: D:\releases\510\myserver\classfiles\jsp_servlet\_pagehits.jav
>a
>Sun Apr 01 12:44:45 PDT 2001:<I> <ServletContext-General> file: init
>
>
>what's the change number you get from weblogic.Admin VERSION?
>
>
>--
>Kumar
>
>Mike Reiche wrote:
>
>> From the zip file.
>>
>> It has to be a jsp that references those tag libraries.
>> Other than that it works like a charm.
>>
>> Mike
>>
>> Kumar Allamraju <[email protected]> wrote:
>> >Did you extracted the SP9 zip or exe?
>> >I do not see the following errors when accessing a jsp with SP9? Could
>> >you tell us how to
>> >reproduce it?
>> >
>> >BTW, i will ask our docs folks to correct the startup scripts..
>> >
>> >--
>> >Kumar
>> >
>> >Mike Reiche wrote:
>> >
>> >> I had to remove the 'async' attribute from taglib.tld
>> >>
>> >> And when I use WLCS I have to remove it from weblogic.tld
>> >>
>> >> And the startup scripts provided do not include weblogic-tags-510.jar
>> >> in the classpath.
>> >>
>> >> Mike
>> >>
>> >> "Mike Reiche" <[email protected]> wrote:
>> >> >
>> >> >WLS 5.1, sp9 pre-release, solaris 2.7, WLCS 3.2
>> >> >
>> >> >JSP compile fails with the exception...
>> >> >
>> >> >weblogic.servlet.jsp.JspException: (line -1): Error in
>> >> >tag library
>> >> >at: 'wl':
>> >> >The Tag class 'weblogicx.jsp.tags.CacheTag' has no setter
>> >> >method
>> >> > corresponding to
>> >> >TLD declared attribute 'async', (JSP 1.1 spec, 5.4.1)
>> >> > at weblogic.servlet.jsp.StandardTagLib.jspException(StandardTagLib.java:138)
>> >> > at weblogic.servlet.jsp.StandardTagLib.processTag(StandardTagLib.java:264)
>> >> > at weblogic.servlet.jsp.StandardTagLib.processTagElements(StandardTagLib.java:146)
>> >> > at weblogic.servlet.jsp.StandardTagLib.<init>(StandardTagLib.java:125)
>> >> > at weblogic.servlet.jsp.JspLexer.loadTagLib(JspLexer.java:95)
>> >> > at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE_BODY(JspLexer.java:3873)
>> >> > at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE(JspLexer.java:3623)
>> >> > at weblogic.servlet.jsp.JspLexer.mDIRECTIVE(JspLexer.java:3484)
>> >> > at weblogic.servlet.jsp.JspLexer.mSTANDARD_THING(JspLexer.java:1817)
>> >> > at weblogic.servlet.jsp.JspLexer.mTOKEN(JspLexer.java:1658)
>> >> > at weblogic.servlet.jsp.JspLexer.nextToken(JspLexer.java:1548)
>> >> > at weblogic.servlet.jsp.JspLexer.parse(JspLexer.java:888)
>> >> > at weblogic.servlet.jsp.JspParser.doit(JspParser.java:69)
>> >> > at weblogic.servlet.jsp.JspParser.parse(JspParser.java:125)
>> >> > at weblogic.servlet.jsp.Jsp2Java.outputs(Jsp2Java.java:109)
>> >> > at weblogic.utils.compiler.CodeGenerator.generate(CodeGenerator.java:242
>> >
>
-
Problem with netweaver developer studio for sp9
Hi,
Presenty we are on ep6 sp10 and we have downloaded dev studio for sp9 which is available on sdn.we have j2sdk1.4.2_06
the problem is that when i deploy a par file from netweaver and try to create an iview based on that par it gives me the following error
Portal Runtime Error
An exception occurred while processing a request for :
iView : N/A
Component Name : N/A
com.sapportals.portal.navigation.ToolAreaiView.
Exception id: 04:25_03/03/05_0005_4061050
See the details for the exception ID in the log file
The strange thing is that if i use ep6 sp2 dev studio it works fine. So is there any problem with sp9 dev studio?I think that with NWDS the SP of the portal and NWDS much match.
Hope it helps,
Patrick. -
Error in the standard htmlb.jar from EP6 SP9 (HTMLx)
I've successfully migrated my custom developed applications from EP5 SP5 to EP6 SP9. I've used the well known 3rd party
HTMLxframework for the DatePicker and Locale corrections only (I am a brazilian developer).
In the org.sapportals.htmlb.rendering there is a class named RenderUtil.
This class has two places with this specific code:
ResourceBundle r = ResourceBundle.getBundle("java.text.resources.LocaleElements", locale);
Which is very wrong as the "java.text.resources.LocaleElements" is available only until j2sdk 1.3. In the EP5 that runs under 1.3 there's no problem but EP6 uses j2sdk 1.4 and this packages has been relocated from the standard package to a "ext" (extension) package and been renamed as "sun.text.resources.LocaleElements".
So, as HTMLx uses this RenderUtil class, I had to decompile the original from the htmlb.jar using JAD and corrected the above line with the following new line or code:
ResourceBundle r = ResourceBundle.getBundle("sun.text.resources.LocaleElements", locale);
More than that, I had to change several places of the HTMLx's HxInputFieldRenderer to reflect the class name changes made to the CSSs of the EP6. In the new version SAP does not open a pop-up window for the DatePicker. Instead they chose to rewrite it as a dynamic layer. So the HTMLx code has to change to reflect that.
Here follows the workaround version of HxInputFieldRenderer.java (notice that some strings are not internationalized, I just copied and pasted the parts I needed, so it's not a definitive version, but will help you get a clue of what to do):
* HxInputFieldRenderer.java
* Copyright (C) 2003 Alan Hobbs
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package org.open.sapportals.htmlx.rendering;
import javax.servlet.jsp.PageContext;
import org.open.sapportals.htmlx.HxField;
import org.open.sapportals.htmlx.HxInputField;
import org.open.sapportals.htmlx.HxLocaleUtil;
import com.sapportals.htmlb.Component;
import com.sapportals.htmlb.Form;
import com.sapportals.htmlb.InputField;
import com.sapportals.htmlb.enum.DataType;
import com.sapportals.htmlb.enum.InputFieldDesign;
import com.sapportals.htmlb.enum.ResourceType;
import com.sapportals.htmlb.rendering.DefaultInputFieldRenderer;
import com.sapportals.htmlb.rendering.IPageContext;
import com.sapportals.htmlb.type.AbstractDataType;
import com.sapportals.htmlb.type.DataDate;
import com.sapportals.htmlb.type.DataString;
import com.sapportals.htmlb.type.Date;
import com.sapportals.portal.prt.component.IPortalComponentRequest;
import com.sapportals.portal.prt.component.IPortalComponentResponse;
import com.sapportals.portal.prt.logger.ILogger;
import com.sapportals.portal.prt.runtime.PortalRuntime;
import com.sapportals.portal.prt.service.urlgenerator.IUrlGeneratorService;
import com.sapportals.portal.prt.service.urlgenerator.specialized.IPortalUrlGenerator;
import com.sapportals.portal.prt.service.urlgenerator.specialized.ISpecializedUrlGenerator;
* @author Alan.Hobbs
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
* Render the HxInputField.
* Version Date Author Description
* 0.1.0 1-Aug-2003 AHobbs Origional
* 0.1.0 4-Aug-2003 AHobbs Added resource bundle
* 0.1.1 6-Aug-2003 AHobbs Write hidden fields to store the locale
* 0.1.1 8-Aug-2003 AHobbs Don't show the date picker button if the field is disabled
* 0.1.2 10-Aug-2003 AHobbs Only generate the month and day name javascript once per form
* 1.1.0 1-Apr-2004 AHobbs Added render methods to allow a HTMLB InputField
* to be used instead of a HxInputField
* 1.1.0 6-Apr-2004 AHobbs Changed the names for the hidden fields to "_HTMLX_xxxxx"
* 1.1.0 20-Apr-2004 AHobbs Allow debug code to be written to the console with System.out.println()
* 1.3.0 4-May-2004 AHobbs Added PopUp rendering
public class HxInputFieldRenderer extends DefaultInputFieldRenderer {
protected ILogger m_logger = PortalRuntime.getLogger("htmlx");
private static boolean writingDebugToConsole;
public HxInputFieldRenderer() {
super();
public void render(Component component, IPageContext pc)
m_logger.info("Entry: HxInputFieldRenderer.render()");
if (!(component instanceof HxInputField)) {
m_logger.warning(
"HxInputFieldRenderer.render() component is not instanceof HxInputField " +
"(component.getClass().getName()='" + component.getClass().getName() + "')");
return;
HxInputField inf = (HxInputField)component;
DataType type = inf.getType();
if (writingDebugToConsole) {
System.out.println("Start rendering HxInputField (id='" + inf.getId() + "') ...");
m_logger.info(" id='" + inf.getId() + "'");
m_logger.info(inf.toString());
/* Only include for PDK version 5.0.5.0 and above - may not be required ???
// m_logger.info(" VersionInfo.getVersion()='" + VersionInfo.getVersion() + "'");
// if (VersionInfo.?????) {
// if (pc.isUsingSession() && !inf.isVisible() && inf.getParkInSession()) {
// String uniqueName = pc.getParamIdForComponent(inf);
// Object value = inf.getValue();
// String valueString = null;
// if (value != null) {
// if (value instanceof AbstractDataType) {
// AbstractDataType dataValue = (AbstractDataType)value;
// if (dataValue != null)
// if (dataValue.isValid())
// valueString = dataValue.toString(pc);
// else
// if (dataValue instanceof DataString)
// valueString = dataValue.toString(pc);
// else
// valueString = dataValue.getValueAsString();
// else {
// valueString = value.toString();
// else {
// valueString = "";
// pc.getParamList().put(uniqueName, valueString);
// return;
boolean showDateHelp = false;
if (DataType.DATE.equals(type)
&& inf.isShowHelp()
&& !inf.isDisabled()) {
showDateHelp = true;
boolean showPatternHint = false;
if (inf.isShowPatternHint()
&& (DataType.DATE.equals(type)
|| DataType.TIME.equals(type))
|| ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0))) {
showPatternHint = true;
boolean showStatusMsg = false;
if (inf.isShowStatusMsg() && (inf.getStatusMsg() != null) && (inf.getStatusMsg().length() > 0)) {
showStatusMsg = true;
if (showDateHelp || showPatternHint || showStatusMsg) {
pc.write("<table cellspacing="0" cellpadding="0" border="0" id="");
pc.write(""><tr><td>");
String uniqueName = pc.getParamIdForComponent(inf);
if (inf.isVisible()) {
pc.write("<span id="");
pc.write(uniqueName);
pc.write("-r" class="urEdfHelpWhl">");
if (inf.isPassword())
pc.write("<input type="password" class="sapEdf");
else
pc.write("<input type="text" class="sapEdf");
if (inf.isInvalid())
pc.write("i");
if (inf.isRequired())
pc.write("Req");
else
pc.write("Txt");
if (inf.isDisabled())
pc.write("Dsbl");
else
pc.write("Enbl");
if (inf.getDesign() == InputFieldDesign.SMALL)
pc.write("Sml");
pc.write("" autocomplete="off");
int mySize = inf.getSize();
if (mySize > 0) {
pc.write("" size="");
pc.write(mySize);
int maxlength = inf.getMaxlength();
if (maxlength > 0) {
pc.write("" maxlength ="");
pc.write(maxlength);
java.lang.String value = inf.getWidth();
if (value != null && !"".equals(value)) {
pc.write("" style="width:");
pc.write(value);
pc.write(";");
java.lang.String tooltip = inf.getTooltip();
if (tooltip != null) {
pc.write("" title="");
pc.writeEncoded(tooltip);
pc.write(" onchange="return htmlbDoEvent(this,'TV','onchange','0','");
pc.write(uniqueName);
pc.write("',1,1,'',0);" ");
pc.write(" onblur="return htmlbDoEvent(this,'TV','onblur','0','");
pc.write(uniqueName);
pc.write("',1,1,'',0);" ");
if(inf.isDisabled())
pc.write("" readonly="");
else {
pc.write("<input type="hidden");
pc.write("" name="");
pc.write(uniqueName);
if (inf.isLabeled()) {
pc.write("" id="");
pc.write(uniqueName);
Object value = inf.getValue();
pc.write("" value="");
if (value != null) {
String valueString = null;
if (value instanceof AbstractDataType) {
m_logger.info("-- Abstract Data Type");
AbstractDataType dataValue = (AbstractDataType)value;
if (dataValue != null) {
m_logger.info("-- dataValue != null");
if (dataValue.isValid()) {
m_logger.info("-- dataValue.isValid()");
if (dataValue instanceof DataDate) {
m_logger.info("-- dataValue instanceof DataDate");
Date date = ((DataDate)dataValue).getValue();
valueString = HxLocaleUtil.formatDate(date, pc.getLocale());
else {
m_logger.info("-- NOT dataValue instanceof DataDate");
valueString = dataValue.toString(pc);
else if (dataValue instanceof DataString) {
m_logger.info("-- dataValue instanceof DataString");
valueString = dataValue.toString(pc);
else {
m_logger.info("-- dataValue.getValueAsString()");
valueString = dataValue.getValueAsString();
else {
// Not Abstract Data Type
m_logger.info("-- Not Abstract Data Type");
valueString = value.toString();
pc.writeEncoded(valueString);
pc.write(""/>");
if (showDateHelp) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><button id='");
pc.write(uniqueName);
pc.write("-btn' type="button" tabindex="-1" ti="-1" class="urEdfHlpDate" onclick="htmlb_showDateHelp(event,'");
pc.write(uniqueName);
pc.write("','");
pc.write(dateFormat);
pc.write("','1')"></button>");
pc.write("<script>htmlb_addTexts('pt_BR',{SAPUR_OCTOBER:"Outubro",SAPUR_MSG_LOADING:"Processo de carga em andamento"," +
"SAPUR_SUNDAY_ABBREV:"Do",SAPUR_F4FIELD_TUTOR:"Pressionar F4 para exibir as entradas possíveis"," +
"SAPUR_INVALID:"Não válido",SAPUR_FEBRUARY:"Fevereiro",SAPUR_F4FIELD:"F4- campo de entrada"," +
"SAPUR_FRIDAY_ABBREV:"6ª",SAPUR_WEDNESDAY_ABBREV:"4ª",SAPUR_MAY:"Maio",SAPUR_MSG_WARNING:"Advertência"," +
"SAPUR_DECEMBER:"Dezembro",SAPUR_SEPARATOR:"-",SAPUR_MSG_SUCCESS:"Com êxito",SAPUR_SATURDAY_ABBREV:"Sa"," +
"SAPUR_THURSDAY_ABBREV:"5ª",SAPUR_MSG:"{0} {1} {2}",SAPUR_BUTTON_WHL:"{0} - {1} - {2} - {3}",SAPUR_JULY:"Julho"," +
"SAPUR_APRIL:"Abril",SAPUR_FIELD_TIME:"Hora",SAPUR_MSG_ERROR:"Erro",SAPUR_REQUIRED:"Necessário"," +
"SAPUR_BUTTON_WHL3:"{0} - {1} - {2}",SAPUR_SEPTEMBER:"Setembro",SAPUR_NOVEMBER:"Novembro",SAPUR_AUGUST:"Agosto"," +
"SAPUR_JANUARY:"Janeiro",SAPUR_BUTTON:"Botão",SAPUR_FIELD_PW:"Senha",SAPUR_FIELD:"Texto editável"," +
"SAPUR_DISABLED:"Não disponível",SAPUR_FIELD_DATE:"Data",SAPUR_MARCH:"Março",SAPUR_FIELD_NUMBER:"N°"," +
"SAPUR_MSG_STOP:"Stop",SAPUR_BUTTON_WHL4:"{0} - {1} - {2} - {3}"," +
"SAPUR_BUTTON_ENABLED:"Para ativar, utilizar a barra de espaço",SAPUR_TUESDAY_ABBREV:"3ª",SAPUR_READOLNY:""," +
"SAPUR_MSG_JUMPKEY:"Pressionar a barra de espaço para navegar para o campo correspondente",SAPUR_JUNE:"Junho"," +
"SAPUR_MONDAY_ABBREV:"2ª"});</script>");
if (showPatternHint) {
String pattern = "";
String patternTooltip = "";
if (DataType.DATE.equals(type)) {
pattern = HxLocaleUtil.getDatePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.DatePatternTooltip", pattern);
else if (DataType.TIME.equals(type)) {
pattern = HxLocaleUtil.getTimePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.TimePatternTooltip", pattern);
pattern = " " + pattern;
else if ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0)) {
pattern = " " + inf.getPatternHint();
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.PatternTooltip", pattern);
pc.write("</td><td align='left'>");
pc.write("<span class='sapTxtLeg' title='" + patternTooltip + "'><nobr>");
pc.write("<font color='666666' face='Microsoft Sans Serif' style='vertical-align:super' size='1'><b>" + pattern + "</b></font>");
pc.write("</nobr></span>");
if (showStatusMsg) {
if (inf.getStatusMsgPosition().equalsIgnoreCase("RIGHT")) {
pc.write("</td><td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' size='1'>");
else if (inf.getStatusMsgPosition().equalsIgnoreCase("BELOW")) {
pc.write("</td></tr><tr>");
if (showDateHelp && showPatternHint) {
pc.write("<td align='left' colspan='3'>");
else if (showDateHelp ^ showPatternHint) { // '^' is Exclusive OR (XOR)
pc.write("<td align='left' colspan='2'>");
else {
pc.write("<td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' style='verticle-align:super' size='1'>");
pc.write("<nobr>" + inf.getStatusMsg() + "</nobr>");
pc.write("</font>");
if (showDateHelp || showPatternHint || showStatusMsg) {
pc.write("</td></tr></table>");
// Generate code to store the current Locale in the HTML form,
// and make the month and day names available in javascript arrays.
// The form's Language attribute is used as a flag so that this is only
// done once for each form.
Form form = pc.getCurrentForm();
if ((form.getLanguage() == null)
|| (!form.getLanguage().equals(pc.getLocale().toString()))) {
// Save the locale in the html form as hidden fields so that the
// same locale can be used to parse returned data.
pc.write("<input type="hidden" name="_HTMLX_LANGUAGE_" value="" + pc.getLocale().getLanguage() + "">");
pc.write("<input type="hidden" name="_HTMLX_COUNTRY_" value="" + pc.getLocale().getCountry() + "">");
pc.write("<input type="hidden" name="_HTMLX_VARIANT_" value="" + pc.getLocale().getVariant() + "">");
// Write javascript arrays of month and day names in the locale language
StringBuffer sb = new StringBuffer(250);
String javaScriptPath = pc.getJavascriptPath();
sb.append("var javaScriptPath='");
sb.append(javaScriptPath);
sb.append("';");
java.lang.String dayNames[] = RenderUtil.getDayAbbreviations(pc.getLocale());
if (dayNames.length != 7) {
throw new IllegalStateException("Only locales with 7 days are supported!");
sb.append("var htmlbDayNames = new Array('");
for (int i = 0; i < 6; i++) {
sb.append(dayNames<i>);
sb.append("','");
sb.append(dayNames[6]);
sb.append("');n");
sb.append("var htmlbMonthNames = new Array('");
java.lang.String monthNames[] = RenderUtil.getMonthNames(pc.getLocale());
for (int i = 0; i < 11; i++) {
sb.append(monthNames<i>);
sb.append("','");
sb.append(monthNames[11]);
sb.append("');n");
java.lang.String jscript = sb.toString();
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLB_INPUTFIELD_DATEHELP", jscript);
// Set the language in the form so we don't do this again
form.setLanguage(pc.getLocale().toString());
if (writingDebugToConsole) {
System.out.println("Finished rendering HxInputField (id='" + inf.getId() + "')");
m_logger.info("Exit: HxInputFieldRenderer.render()");
// Methods to allow the Standard HTMLB InputField to Mimic HxInputField
// The key idea here is to use the standard InputField ONLY as a String
// field (never Date) so that we have total control over the display format
// and then HTMLX looks after ofrmating the string, abd displaying the
// help icons, status messages etc.
* Render the HTML placed before a HTMLB InputField, an InputField,
* and the code placed after the InputFIeld, so that it behaves like a
* HTMLX HxInputField
* @param field
* @param pc
public static InputField mimicRender(HxField hxField, IPageContext pc) {
HxInputField hxInputField = new HxInputField(hxField, pc.getLocale());
return mimicRender(hxInputField, pc);
* Render the HTML placed before a HTMLB InputField, an InputField,
* and the code placed after the InputFIeld, so that it behaves like a
* HTMLX HxInputField
* @param field
* @param pc
public static InputField mimicRender(HxInputField hxInputField, IPageContext pc) {
// Render stuff before InputField
renderBeforeInputTag(hxInputField, pc);
// Render InputField
InputField inputField = new InputField(hxInputField.getId());
setUpInputField(hxInputField, inputField, pc);
// This is a kludge to make a field read only. It is achieved by
// adding the flag to the 'width' attribute. HTMLB then unknowingly
// adds the flag when it renders the 'width' attribute.
if (hxInputField.isReadOnly()) {
inputField.setWidth( inputField.getWidth() + ";" readonly="");
inputField.render(pc);
String uniqueName = pc.getParamIdForComponent(inputField);
String popUpKeyUniqueName = "";
// If the field has a Pop Up add a hidden field for the Key populated by the Pop Up
if (hxInputField.isShowPopUp()) {
InputField keyInputField = new InputField(hxInputField.getId() + "PopUpKey");
keyInputField.setVisible(false);
keyInputField.setValue(hxInputField.getPopUpKeyValue());
keyInputField.render(pc);
popUpKeyUniqueName = pc.getParamIdForComponent(keyInputField);
// Render stuff after InputField
renderAfterInputTag(hxInputField, pc, uniqueName, popUpKeyUniqueName);
return inputField;
* Render the HTML to be placed before a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param field
* @param pc
public static void renderBeforeInputTag(HxField field, IPageContext pc) {
renderBeforeInputTag(new HxInputField(field), pc);
* Render the HTML to be placed before a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param pc
public static void renderBeforeInputTag(HxInputField inf, IPageContext pc)
if (writingDebugToConsole) {
System.out.println("Start rendering mimic HxInputField (id='" + inf.getId() + "') ...");
if (showDateHelp(inf) || showPopUp(inf) || showPatternHint(inf) || showStatusMsg(inf)) {
pc.write("<table cellspacing="0" cellpadding="0" border="0" id="");
pc.write(""><tr><td>");
* Set a HMTLB InputField with the values stored in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not support some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static InputField setUpInputField(HxField hxField, IPageContext pc, PageContext pageContext) {
Component component = (Component)pageContext.getAttribute(hxField.getId());
if (!(component instanceof InputField)) {
String msg =
"HxInputFieldRenderer.setUpInputTag() component is not instanceof InputField " +
"(hxField.getId()='" + hxField.getId() + "' " +
" component.getClass().getName()='" + component.getClass().getName() + "')";
PortalRuntime.getLogger("htmlx").severe(msg);
throw new IllegalArgumentException(msg);
InputField inf = (InputField)pageContext.getAttribute(hxField.getId());
setUpInputField(hxField, inf, pc);
return inf;
* Set a HMTLB InputField with the values in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not allow you to set some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static void setUpInputField(HxField hxField, InputField inf, IPageContext pc) {
inf.setDisabled(hxField.isDisabled());
inf.setInvalid(hxField.isInvalid());
inf.setMaxlength(hxField.getMaxLength());
inf.setRequired(hxField.isRequired());
inf.setShowHelp(false);
inf.setTooltip(hxField.getTooltip());
inf.setType(DataType.STRING);
inf.setValue(hxField.getValueAsString(pc.getLocale()));
inf.setVisible(hxField.isVisible());
inf.setSize(hxField.getMaxLength());
* Set a HMTLB InputField with the values stored in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not support some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static void setUpInputField(HxInputField hxInputField, InputField inf, IPageContext pc) {
inf.setDisabled(hxInputField.isDisabled());
inf.setInvalid(hxInputField.isInvalid());
inf.setMaxlength(hxInputField.getMaxlength());
inf.setRequired(hxInputField.isRequired());
inf.setShowHelp(false);
inf.setTooltip(hxInputField.getTooltip());
inf.setType(DataType.STRING);
inf.setValue(hxInputField.getPreformattedValueAsString());
inf.setVisible(hxInputField.isVisible());
inf.setSize(hxInputField.getSize());
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param field
* @param myContext
* @param pageContext
public static void renderAfterInputTag(HxField field, IPageContext pc, PageContext pageContext) {
renderAfterInputTag(new HxInputField(field), pc, pageContext);
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param myContext
* @param pageContext
public static void renderAfterInputTag(HxInputField inf, IPageContext pc, PageContext pageContext) {
Component component = (Component)pageContext.getAttribute(inf.getId());
String uniqueName = pc.getParamIdForComponent(component);
String popUpKeyUniqueName = "";
if (inf.isShowPopUp()) {
component = (Component)pageContext.getAttribute(inf.getId() + "PopUpKey");
popUpKeyUniqueName = pc.getParamIdForComponent(component);
renderAfterInputTag(inf, pc, uniqueName, popUpKeyUniqueName);
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param pc
* @param uniqueName
* @param popUpKeyUniqueName
public static void renderAfterInputTag(
HxInputField inf,
IPageContext pc,
String uniqueName,
String popUpKeyUniqueName)
if (showDateHelp(inf)) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><button id='");
pc.write(uniqueName);
pc.write("-btn' type="button" tabindex="-1" ti="-1" class="urEdfHlpDate" onclick="htmlb_showDateHelp(event,'");
pc.write(uniqueName);
pc.write("','");
pc.write(dateFormat);
pc.write("','1')"></button>");
pc.write("<script>htmlb_addTexts('pt_BR',{SAPUR_OCTOBER:"Outubro",SAPUR_MSG_LOADING:"Processo de carga em andamento"," +
"SAPUR_SUNDAY_ABBREV:"Do",SAPUR_F4FIELD_TUTOR:"Pressionar F4 para exibir as entradas possíveis"," +
"SAPUR_INVALID:"Não válido",SAPUR_FEBRUARY:"Fevereiro",SAPUR_F4FIELD:"F4- campo de entrada"," +
"SAPUR_FRIDAY_ABBREV:"6ª",SAPUR_WEDNESDAY_ABBREV:"4ª",SAPUR_MAY:"Maio",SAPUR_MSG_WARNING:"Advertência"," +
"SAPUR_DECEMBER:"Dezembro",SAPUR_SEPARATOR:"-",SAPUR_MSG_SUCCESS:"Com êxito",SAPUR_SATURDAY_ABBREV:"Sa"," +
"SAPUR_THURSDAY_ABBREV:"5ª",SAPUR_MSG:"{0} {1} {2}",SAPUR_BUTTON_WHL:"{0} - {1} - {2} - {3}",SAPUR_JULY:"Julho"," +
"SAPUR_APRIL:"Abril",SAPUR_FIELD_TIME:"Hora",SAPUR_MSG_ERROR:"Erro",SAPUR_REQUIRED:"Necessário"," +
"SAPUR_BUTTON_WHL3:"{0} - {1} - {2}",SAPUR_SEPTEMBER:"Setembro",SAPUR_NOVEMBER:"Novembro",SAPUR_AUGUST:"Agosto"," +
"SAPUR_JANUARY:"Janeiro",SAPUR_BUTTON:"Botão",SAPUR_FIELD_PW:"Senha",SAPUR_FIELD:"Texto editável"," +
"SAPUR_DISABLED:"Não disponível",SAPUR_FIELD_DATE:"Data",SAPUR_MARCH:"Março",SAPUR_FIELD_NUMBER:"N°"," +
"SAPUR_MSG_STOP:"Stop",SAPUR_BUTTON_WHL4:"{0} - {1} - {2} - {3}"," +
"SAPUR_BUTTON_ENABLED:"Para ativar, utilizar a barra de espaço",SAPUR_TUESDAY_ABBREV:"3ª",SAPUR_READOLNY:""," +
"SAPUR_MSG_JUMPKEY:"Pressionar a barra de espaço para navegar para o campo correspondente",SAPUR_JUNE:"Junho"," +
"SAPUR_MONDAY_ABBREV:"2ª"});</script>");
if (showPopUp(inf)) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><div class="urEdfHlpSml" onClick="");
pc.write("htmlxPopUp('");
pc.write(getPopUpUrl(pc, inf.getPopUpPage()));
pc.write("', '");
pc.write(uniqueName);
pc.write("', '");
pc.write(popUpKeyUniqueName);
pc.write("', ");
pc.write(inf.getPopUpWidth());
pc.write(", ");
pc.write(inf.getPopUpHeight());
pc.write(", '");
pc.write(inf.getPopUpAttributes());
pc.write("')">");
pc.write(" </div>");
if (showPatternHint(inf)) {
String pattern = "";
String patternTooltip = "";
if (DataType.DATE.equals(inf.getType())) {
pattern = HxLocaleUtil.getDatePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.DatePatternTooltip", pattern);
else if (DataType.TIME.equals(inf.getType())) {
pattern = HxLocaleUtil.getTimePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.TimePatternTooltip", pattern);
pattern = " " + pattern;
else if ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0)) {
pattern = " " + inf.getPatternHint();
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.PatternTooltip", pattern);
pc.write("</td><td align='left'>");
pc.write("<span class='sapTxtLeg' title='" + patternTooltip + "'><nobr>");
pc.write("<font color='666666' face='Microsoft Sans Serif' style='vertical-align:super' size='1'><b>" + pattern + "</b></font>");
pc.write("</nobr></span>");
if (showStatusMsg(inf)) {
if (inf.getStatusMsgPosition().equalsIgnoreCase("RIGHT")) {
pc.write("</td><td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' size='1'>");
else if (inf.getStatusMsgPosition().equalsIgnoreCase("BELOW")) {
pc.write("</td></tr><tr>");
if (showDateHelp(inf) && showPatternHint(inf)) {
pc.write("<td align='left' colspan='3'>");
else if (showDateHelp(inf) ^ showPatternHint(inf)) { // '^' is Exclusive OR (XOR)
pc.write("<td align='left' colspan='2'>");
else {
pc.write("<td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' style='verticle-align:super' size='1'>");
pc.write("<nobr>" + inf.getStatusMsg() + "</nobr>");
pc.write("</font>");
if (showDateHelp(inf) || showPopUp(inf) || showPatternHint(inf) || showStatusMsg(inf)) {
pc.write("</span></td></tr></table>");
// Generate code to store the current Locale in the HTML form,
// and make the month and day names available in javascript arrays.
// The form's Language attribute is used as a flag so that this is only
// done once for each form.
Form form = pc.getCurrentForm();
if ((form.getLanguage() == null)
|| (!form.getLanguage().equals(pc.getLocale().toString()))) {
// Save the locale in the html form as hidden fields so that the
// same locale can be used to parse returned data.
pc.write("<input type="hidden" name="_HTMLX_LANGUAGE_" value="" + pc.getLocale().getLanguage() + "">");
pc.write("<input type="hidden" name="_HTMLX_COUNTRY_" value="" + pc.getLocale().getCountry() + "">");
pc.write("<input type="hidden" name="_HTMLX_VARIANT_" value="" + pc.getLocale().getVariant() + "">");
// Write javascript arrays of month and day names in the locale language
StringBuffer sb = new StringBuffer(250);
String javaScriptPath = pc.getJavascriptPath();
sb.append("var javaScriptPath='");
sb.append(javaScriptPath);
sb.append("';");
java.lang.String dayNames[] = RenderUtil.getDayAbbreviations(pc.getLocale());
if (dayNames.length != 7) {
throw new IllegalStateException("Only locales with 7 days are supported!");
sb.append("var htmlbDayNames = new Array('");
for (int i = 0; i < 6; i++) {
sb.append(dayNames<i>);
sb.append("','");
sb.append(dayNames[6]);
sb.append("');n");
sb.append("var htmlbMonthNames = new Array('");
java.lang.String monthNames[] = RenderUtil.getMonthNames(pc.getLocale());
for (int i = 0; i < 11; i++) {
sb.append(monthNames<i>);
sb.append("','");
sb.append(monthNames[11]);
sb.append("');n");
String jscript = sb.toString();
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLB_INPUTFIELD_DATEHELP", jscript);
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLX", getHtmlxJavascript());
// Set the language in the form so we don't do this again
form.setLanguage(pc.getLocale().toString());
if (writingDebugToConsole) {
System.out.println("Finished rendering mimic HxInputField (id='" + inf.getId() + "')");
private static boolean showDateHelp(HxInputField inf) {
if (DataType.DATE.equals(inf.getType())
&& inf.isShowHelp()
&& !inf.isDisabled()) {
return true;
return false;
private static boolean showPopUp(HxInputField inf) {
if (!showDateHelp(inf)
&& !inf.isDisabled()
&& inf.isShowPopUp()) {
return true;
return false;
private static boolean showPatternHint(HxInputField inf) {
boolean isDateOrTime = DataType.DATE.equals(inf.getType()) || DataType.TIME.equals(inf.getType());
boolean patternHintSet = (inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0);
if (inf.isShowPatternHint()
&& (isDateOrTime || patternHintSet)) {
return true;
return false;
private static boolean showStatusMsg(HxInputField inf) {
if (inf.isShowStatusMsg()
&& (inf.getStatusMsg() != null)
&& (inf.getStatusMsg().length() > 0)) {
return true;
return false;
private static String getPopUpUrl(IPageContext pc, String pageName) {
IPortalComponentRequest request = (IPortalComponentRequest)pc.getRequest();
IPortalComponentResponse response = (IPortalComponentResponse)pc.getResponse();
IPortalUrlGenerator portalGen = null;
IUrlGeneratorService urlGen = (IUrlGeneratorService)request.getService(IUrlGeneratorService.KEY);
ISpecializedUrlGenerator specUrlGen2 = urlGen.getSpecializedUrlGenerator(IPortalUrlGenerator.KEY);
if (specUrlGen2 instanceof IPortalUrlGenerator) {
portalGen = (IPortalUrlGenerator) specUrlGen2;
// Create the url to the iView
String url = "";
if (portalGen != null) {
// Create the parameters passed to SAP transaction for mesima
url = portalGen.generatePortalComponentUrl(request, pageName); // "htmlxJarMimicExample.default");
return url;
protected static String getHtmlxJavascript() {
return "n" +
" if(window.document.domain == window.location.hostname) { n" +
" document.domain = document.domain.substring(document.domain.indexOf('.')+1); n" +
" } n" +
" var popUpTextId; n" +
" var popUpKeyId; n" +
" var myPopUp; n" +
" function setTextField(text) { n" +
" field = document.getElementById(popUpTextId); n" +
" if (field) { n" +
" field.value = text; n" +
" } n" +
" else { n" +
" alert('Text target field for pop up not found (' + popUpTextId + ')'); n" +
" } n" +
" } n" +
" function setKeyField(key) { n" +
" field = document.getElementById(popUpKeyId); n" +
" if (field) { n" +
" field.value = key; n" +
" } n" +
" } n" +
" function setFields(text, key, close) { n" +
" setTextField(text); n" +
" setKeyField(key); n" +
" if (close) { n" +
" myPopUp.close(); n" +
" } n" +
" return false; n" +
" } n" +
" function htmlxPopUp(url, textId, keyId, width, height, attributes) { n" +
" popUpTextId = textId; n" +
" popUpKeyId = keyId; n" +
" if (myPopUp) { n" +
" myPopUp.close(); n" +
" } n" +
" if (event!=null){ n" +
" xPos = event.screenX-event.offsetX; n" +
" yPos = event.screenY-event.offsetY; n" +
" } n" +
" if ((xPos+width) > screen.availWidth) { n" +
" xPos=screen.availWidth - width - 10; n" +
" } n" +
" if ((yPos+height) > screen.availHeight) { n" +
" yPos=screen.availHeight - height - 10; n" +
" } n" +
" sizeAndPos = 'width=' + width + ', height=' + height + ', top=' + yPos + ', left=' + xPos; n" +
" myPopUp = window.open(url, 'PopUp', sizeAndPos + ', ' + attributes); n" +
" if (!myPopUp) { n" +
" alert('You may have unrequested popup blocking on.'); n" +
" } n" +
" }n";
// Methods to assist dubugging JSP pages
* @return True if debug messages are being written to the console
public static boolean isWritingDebugToConsole() {
return writingDebugToConsole;
* When an error occurs in a JSP page the line number given in the stack
* trace is rarely the line that caused the error. This can make traking
* down errors in a JSP page can be very difficult. By writing debug messages
* to the console every time a field is rendered, it can be much easier to
* identify the area of code causing a problem.<p>
* <b>Do NOT set this in the production release of your application.</b>
* @param b
public static void setWritingDebugToConsole(boolean b) {
writingDebugToConsole = b;
* Initialise to NOT write debug to the console
static {
writingDebugToConsole = false;Try these
[http://help.sap.com/saphelp_nwmobile71/helpdata/en/45/65ad4ee0531aa8e10000000a114a6b/content.htm]
[http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm]
[http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01381.0120/doc/html/koh1278435126915.html]
Reagards,
Mouli -
Development Environment for SP9
Hello,
I need to create some web dynpros in EP 6.0 SP9+. I have eclipse, is there a plug in for eclipse that is compatible with SP9? And, what development environent would you suggest using for developing web dynpros.
regards,
TomHi Thomas,
It's on service.sap.com . Right now the website is down. If the website comes back up then i will post you the exact link.
Try the following link.
https://smpdl.sap-ag.de/~swdc/002007974700000089732005D/JIDE11P_1-10002804.SAR?_ACTION=DL_DIRECT
Message was edited by: Prakash Singh -
How to view a BI query with anonymous user in the portal
<b>Hi Gurus,</b>
Does anybody knows how to view a BI query in the portal with anonymous user?
Cause when i try to view a query the portal always ask for authentification. And i don't want to sign with a user cause my portal is for everybody and if the user logged in it shows the roles that previously were assigned.
I have the Netweaver 2004 with SP9
<b>Thank you Very Much</b>do you have sso configured between portal and BW server, if yes the authentication pop up should not come.
if you dont want to do sso between portal and bw server and still want to logon to BW query with anonymous user,
in you bw server go to transaction sicf and navigate to DEFAULT_HOST->SAP->BW->BEX and double click on bex node in the resulting window, log on details section provide a default userid/password
Raja -
Servlet failed with Exception java.lang.illegalaccesserror - hp-ux
Hi,I installed WLS 5.1 with SP9 in HP-UX with Java1.2. Since I need to send mails from jmail, I added necessary .jar files in weblogic/lib directory. When ever I try to run this event. I get the following exception. Can anyone help me. Thanks in advance. Servlet failed with Exceptionjava.lang.IllegalAccessError: try to access class MailUserData from class MailServlet_Event1 at MailServlet_Event1.doGet(MailServlet_Event1.java:110) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:865) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120) at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:158) at Member.doGet(Member.java:199) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:865) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:120) at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915) at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879) at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269) at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365) at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
can nyone please gimmie ny input wid dese ,,, i am really stucked here,,, help
-
Problem with SP6 + IE + sendRedirect
Hello,
We've had this problem with the sendRedirect method. Under IE (all versions
we tested), a sendRedirect would take a considerable amount of time to
actually perform the redirection; in fact the time it took was approximately
equal to the KeepAliveTimeout setting within the httpd.conf file of our
front end Apache webservers (Redhat 6.2 btw). We have two Apache servers in
front of a cluster of two Weblogic 5.1 servers (SP6).
Now the interesting thing is when we "downgraded" the mod_wl.so file back to
the SP5 version, the problem disappeared. Obviously i'm not happy with
running the SP5 version of the apache/weblogic bridge due to the various
documented issues, so am wondering if a) anyone has seen this themselves,
(b) got it working correctly under SP6, or c) when the hell is SP7 coming
out. ;)
thanks
Carl
Yes, I'm having this problem too with IE, i.e. taking some amount of time until
redirection happens. But with Netscape, the redirect is fast, i.e. normal.
I'm using Weblogic server 5.1 with SP9 (I tested with SP8 with the same result),
Apache 1.3.12, Redhat 6.2, IE 5.0.
When I captured the HTTP response from the server, the content-length header showed
533. Actually the body of the response is nothing, just a line, I think. So I
guess IE tried to receive all 533 bytes of content until the Keep alive timed
out, after which it followed the redirection.
I think this is a bug in Weblogic, it shouldn't spit out 533 bytes with no content.
Iwan
"Joe Bella" <[email protected]> wrote:
>
>How can we make this work if we are using just servlets? To get around
>the problem, I have resorted to the cheesy solution of spitting out
>javascript redirect code. This obviously is a sub-optimal solution.
>
>Any other ideas for workarounds until sp7 comes out?
>
>thanks
>
>joe
>
>"Mike Reiche" <[email protected]> wrote:
>>
>>I've seen this as well. We fixed it by using a jsp:forward instead of
>the sendRedirect.
>>
>>Mike Reiche
>>
>>"Carl Ansley" <[email protected]> wrote:
>>>Hello,
>>>
>>>We've had this problem with the sendRedirect method. Under IE (all
>versions
>>>we tested), a sendRedirect would take a considerable amount of time
>to
>>>actually perform the redirection; in fact the time it took was approximately
>>>equal to the KeepAliveTimeout setting within the httpd.conf file of
>our
>>>front end Apache webservers (Redhat 6.2 btw). We have two Apache servers
>in
>>>front of a cluster of two Weblogic 5.1 servers (SP6).
>>>
>>>Now the interesting thing is when we "downgraded" the mod_wl.so file
>back to
>>>the SP5 version, the problem disappeared. Obviously i'm not happy
>with
>>>running the SP5 version of the apache/weblogic bridge due to the various
>>>documented issues, so am wondering if a) anyone has seen this themselves,
>>>(b) got it working correctly under SP6, or c) when the hell is SP7
>coming
>>>out. ;)
>>>
>>>thanks
>>>Carl
>>>
>>>
>>
>
-
External context mapping with recursive treenode
Hi,
did anybody succeed with external context mapping of a recursive tree node?
I get the following runtime error. Everything works fine if I use a "regular" value node. I´ve also experimented with manual and automatic component creation.
Any help is appreciated
Helmut
com.sap.tc.webdynpro.progmodel.context.ContextException: NodeInfo(InnerCompInterface.OuterCompTree): cannot create nodes, no mapping defined yet
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getDataNode(MappingInfo.java:102)
at com.sap.tc.webdynpro.progmodel.context.RecursiveNodeInfo.init(RecursiveNodeInfo.java:127)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.progmodel.controller.Component.getCustomControllerInternal(Component.java:409)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:347)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:376)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:137)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:346)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:854)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.createComponent(ClientComponent.java:157)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponentInternal(ComponentUsage.java:137)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createComponent(ComponentUsage.java:104)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.createInstanceIfDemanded(ComponentUsage.java:659)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getInterfaceControllerInternal(ComponentUsage.java:300)
at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.getControllerInternal(ComponentUsage.java:341)
at com.sap.tc.webdynpro.progmodel.controller.Component.getMappableContext(Component.java:381)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.getContext(MappingInfo.java:54)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.isComplete(MappingInfo.java:92)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.getStructureType(NodeInfo.java:247)
at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.initNodeMapping(AttributeInfo.java:546)
at com.sap.tc.webdynpro.progmodel.context.AttributeInfo.init(AttributeInfo.java:432)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAttributes(NodeInfo.java:692)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.initAfterCompletedMapping(NodeInfo.java:698)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initAfterCompletedMapping(MappingInfo.java:159)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.initMapping(MappingInfo.java:152)
at com.sap.tc.webdynpro.progmodel.context.MappingInfo.init(MappingInfo.java:142)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:667)
at com.sap.tc.webdynpro.progmodel.context.NodeInfo.init(NodeInfo.java:682)
at com.sap.tc.webdynpro.progmodel.context.Context.init(Context.java:38)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.getView(ViewManager.java:539)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.bindRoot(ViewManager.java:421)
at com.sap.tc.webdynpro.progmodel.view.ViewManager.init(ViewManager.java:129)
at com.sap.tc.webdynpro.progmodel.view.InterfaceView.initController(InterfaceView.java:41)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.displayToplevelComponent(ClientComponent.java:134)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:364)
at com.sap.tc.webdynpro.clientserver.task.Task.createApplication(Task.java:217)
at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:548)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:57)
at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:249)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing(DispatcherServlet.java:139)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:101)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:38)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:383)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:333)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:311)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:811)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:235)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:144)
/codeHi Helmut,
I face exactly the same problem with NW 2.0.7.
It is a bug in WebDynpro runtime.
Good news is that it is fixed with SP9, so this functionality will work in final release (I believe WD team uses regression tests
Regards,
VS -
SAP EU software component for Web Dynpro SP9
Hi all,
I've followed the tutorial on how to create a Web Dynpro Callable object and couldn't go further because I couldn't find the libraries needed in the Local DC (caf/eu/gp/api/wd) api's.
I've found the Blog from Andre Truong on how to retrieve this API's in your Local Development Component projects (SP7).
/people/andre.truong/blog/2006/06/26/working-with-the-apis-of-caf-guided-procedures-nwdi-or-local-development
Unfortunally this is only working for SP7 (And maybe SP8) but not for SP9.
In the blog Andre mentioned that this problem might be resolved with SP9 because the API's come as default with the IDE.
This appears not to be the case for me.
Does anyone know how to resolve this problem?
PS I also read the following thread and the reply from Tomas Kuba but that seems to be a difficult and dirty way to do it?
Re: Guided procedures & WebDynpro (SAP-EU software component)
Thanks in advance!Ok, seems to work just fine for SP 9 also.
Only the folders eu and gp don't excists. Just create them and extract the zip files.
Great blog thanks!
Message was edited by:
B. van Prooijen
Maybe you are looking for
-
How to creat a resource file in blackberry playbook
Hai, how to creat a resource file in blackberry playbook. Regards Ratheesh R Kurup
-
Hi, When we are transfering the balances in Assets in Profit center using 1KEI ,a balance of 1000 is transfered to a particular profitcenter for an asset balancesheet account for period 1.But actually when i goto 2KEE or GLPCT table the amount is rs
-
Calendar entries not displaying
Hope someone can assist. On the Calendar, if I have two events that are All Day, scheduled on the same day; the app only displays one of the appointments; and it appears to be random as to which one it will display. Can someone explain how I can be m
-
Home and preferences link disappeared in my custom page
Hi. I created 2 custom pages and they are working fine. I see everything including the global links But after I created tabular entry in the menu I don't see global links anymore Steps I did: Created a new menu X with "Menu Type" Home Page It has 2 e
-
ThinkVantage System Update fails
Hi I have a T61p with XP Pro. I am not able to get any system updates for my machine through ThinkVantage System Update. It says "An error occured while gathering user information." and then it fails. I have no idea why it would say that. Any ide