cancel
Showing results for 
Search instead for 
Did you mean: 

URL problem

Former Member
0 Kudos

Hello All,

We recently upgrade our system from SP11 to SP14.

I have a small webdynpro application which presents in a table links to documents on KM using followings code:

IURLGeneratorService urlgen = (com.sapportals.wcm.service.urlgenerator.IURLGeneratorService) ResourceFactory.getInstance().getServiceFactory().getService(IServiceTypesConst.URLGENERATOR_SERVICE);

try {

String url = urlgen.getResourcePageUri(PathKey.CONTENT_ACCESS_PATH,r.getAccessRID(),null).toString();

resultsElement.setDocURL(url);

} catch (ResourceException e) {

} catch (WcmException e) {}

It worked OK till the upgrading operation. But now We have got the following error:

com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Invalid URL=/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/Public Documents/òøòåøé ðëéí/ôñ÷é ãéï/Sti_Trace.log

at com.sap.tc.webdynpro.serverimpl.core.url.AbstractURLGenerator.checkURL(AbstractURLGenerator.java:566)

at com.sap.tc.webdynpro.services.sal.url.core.URLGeneratorInternal.checkURL(URLGeneratorInternal.java:303)

at com.sap.tc.webdynpro.clientserver.uielib.standard.impl.LinkToURL.getReference(LinkToURL.java:221)

at com.sap.tc.webdynpro.clientimpl.html.uielib.standard.uradapter.LinkToURLAdapter.getReference(LinkToURLAdapter.java:235)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.LinkRenderer.render(LinkRenderer.java:45)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render (AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableCellRenderer.renderSapTableGenericCellFragment(SapTableCellRenderer.java:1197)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableCellRenderer.renderSapTableCellFragment(SapTableCellRenderer.java:226)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableCellRenderer.render(SapTableCellRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableRowRenderer.renderSapTableRowFragment(SapTableRowRenderer.java:90)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableRowRenderer.render(SapTableRowRenderer.java:41)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableDefaultBodyRenderer.renderSapTableDefaultBodyFragment(SapTableDefaultBodyRenderer.java:168)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableDefaultBodyRenderer.render(SapTableDefaultBodyRenderer.java:36)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableRenderer.renderSapTableFragment(SapTableRenderer.java:570)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.SapTableRenderer.render(SapTableRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutCellFragment(GridLayoutRenderer.java:739)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutRowFragment(GridLayoutRenderer.java:388)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.renderGridLayoutFragment(GridLayoutRenderer.java:310)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.GridLayoutRenderer.render(GridLayoutRenderer.java:71)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.renderScrollContainerFragment(ScrollContainerRenderer.java:516)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.ie6.ScrollContainerRenderer.render(ScrollContainerRenderer.java:61)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.UiWindowRenderer.render(UiWindowRenderer.java:45)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render(AbstractRenderManager.java:294)

at com.sap.tc.webdynpro.clientimpl.html.renderer.uielements.base.AbstractRenderManager.render (AbstractRenderManager.java:102)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendHtml(HtmlClient.java:555)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:346)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.sendResponse(HtmlClient.java:255)

at com.sap.tc.webdynpro.clientimpl.html.client.HtmlClient.retrieveData(HtmlClient.java:157)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.handleActionEvent(WebDynproMainTask.java:425)

at com.sap.tc.webdynpro.clientserver.task.WebDynproMainTask.execute(WebDynproMainTask.java:649)

at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:59)

at com.sap.tc.webdynpro.clientserver.cal.ClientManager.doProcessing(ClientManager.java:248)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doWebDynproProcessing (DispatcherServlet.java:154)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:116)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:55)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

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:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)

I try to add "http" or http://<server.domain>:50000 using hard code before url but it doesn’t work yet.

Thank in advance

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

See the following thread:

Armin

Former Member
0 Kudos

Hi

Is that meaning I can not use Hebrew characters in KM doc path?

Is any way to convert Hebrew characters?

Thanks in advance

Former Member
0 Kudos

I think you have to encode the Hebrew characters in the URL using java.net.URLEncoder.encode(s, "UTF-8").

Armin

Former Member
0 Kudos

Sorry.

I try it but it is not work.

I changed my code to:

IURLGeneratorService url = (IURLGeneratorService)ResourceFactory.getInstance().getServiceFactory().getService(IServiceTypesConst.URLGENERATOR_SERVICE);

String tmpURL = url.getResourcePageUri(PathKey.CONTENT_ACCESS_PATH,r.getAccessRID(),null).toString();

resultsElement.setDocURL (URLEncoder.encode(tmpURL,"UTF-8"));

Now my url is like that :

http://<server>:50000/webdynpro/dispatcher/local/TrexIndexSearch/%2Firj%2Fservlet%2Fprt%2Fportal%2Fp...Documents%2F%D7%A2%D7%A8%D7%A2%D7%95%D7%A8%D7%99%D7%A0%D7%9B%D7%99%D7%9D%2F%D7%A4%D7%A1%D7%A7%D7%99+%D7%93%D7%99%D7%9F%2Ftest.doc

And when I click on the link I hava got the following exception:

#1.5#000BCDFB6968004A0000005300001744000404F5EF6E0228#1131354237314#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/tcwddispwda#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Administrator#33249##<server>.justice_J2E_5957750#Administrator#6c55e8d04f6d11da9613000bcdfb6968#SAPEngine_Application_Thread[impl:3]_24##0#0#Error#1#/System/Server/WebRequests#Plain###Processing HTTP request to servlet [dispatcher] finished with error.

The error is: com.sap.tc.webdynpro.services.sal.api.WDDispatcherException: Requested deployable object 'local/TrexIndexSearch' and application 'irj' are not deployed on the server. Please check the used URL.

Exception id: [000BCDFB6968004A0000005100001744000404F5EF6DFEAA]#

#1.5#000BCDFB6968004C000003F900001744000404F5F13F5EEC#1131354267814#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#sap.com/tcwddispwda#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#Administrator#33249##<server>.justice_J2E_5957750#Administrator#6c55e8d04f6d11da9613000bcdfb6968#SAPEngine_Application_Thread[impl:3]_0##0#0#Error##Plain###Processing HTTP request to servlet [dispatcher] finished with error. The error is: com.sap.tc.webdynpro.services.sal.api.WDDispatcherException: Requested deployable object 'local/TrexIndexSearch' and application 'irj' are not deployed on the server. Please check the used URL.

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:86)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:48)

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:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

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:95)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)

Caused by: com.sap.tc.webdynpro.services.sal.deployment.api.WDDeploymentException: Failed to load deployable object part 'irj', type 'Application' of deployable object 'local/TrexIndexSearch'.

at com.sap.tc.webdynpro.serverimpl.core.deployment.AbstractDeployableObject.getPart(AbstractDeployableObject.java:244)

at com.sap.tc.webdynpro.serverimpl.wdc.deployment.DeployableObjectFactory.getDeployableObjectPart(DeployableObjectFactory.java:117)

at com.sap.tc.webdynpro.services.sal.deployment.api.WDDeployableObject.getDeployableObjectPart(WDDeployableObject.java:62)

at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:80)

... 17 more

#

#1.5#000BCDFB6968004C000003FB00001744000404F5F13F6277#1131354267814#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/tcwddispwda#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#Administrator#33249##<server>.justice_J2E_5957750#Administrator#6c55e8d04f6d11da9613000bcdfb6968#SAPEngine_Application_Thread[impl:3]_0##0#0#Error#1#/System/Server/WebRequests#Plain###Processing HTTP request to servlet [dispatcher] finished with error.

The error is: com.sap.tc.webdynpro.services.sal.api.WDDispatcherException: Requested deployable object 'local/TrexIndexSearch' and application 'irj' are not deployed on the server. Please check the used URL.

Exception id: [000BCDFB6968004C000003F900001744000404F5F13F5EEC]#

Thanks for your help

Former Member
0 Kudos

Hi yoel,

I have exactly the same problem,

did you solved the problem with the URL?

Thanke ahead,

Maya.

Former Member
0 Kudos

Can you separate the generated URL into the part containing the Hebrew characters and the rest? Encode only the part with the characters and not the complete URL.

Armin

Former Member
0 Kudos

Hi Armin,

I don't have any Hebrew characters in my URL path.

Here is the exception which I get now:

<b>com.sap.tc.webdynpro.services.exceptions.WDRuntimeException: Invalid URL=/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/Public Documents/Appointments/PDF.txt</b>

Here is my rows code:

IURLGeneratorService urlgen = (com.sapportals.wcm.service.urlgenerator.IURLGeneratorService) ResourceFactory.getInstance().getServiceFactory().getService(IServiceTypesConst.URLGENERATOR_SERVICE);
String url = null;   

try {
     url = urlgen.getResourcePageUri(PathKey.CONTENT_ACCESS_PATH,r.getAccessRID(),null).toString();
    } 
catch (ResourceException e) {
                  wdContext.currentContextElement().setPrintErr(e.toString());
                            }
tableNodeElement.setFile_url(url);
wdContext.nodeTableNode().addElement(tableNodeElement);

Thanks,

Maya.

Former Member
0 Kudos

The original poster had problems with Hebrew characters, so your problem is not exactly the same.

I'm not sure but the unescaped blank in your URL might be the problem.

Armin

detlev_beutner
Active Contributor
0 Kudos

Hi Yoel,

two possibilities:

(a) This part is the problem: "òøòåøé ðëéí/ôñ÷é ãéï" (on my screen, only strange Characters).

(b) If not, check within the EP the source in question, see Details / Settings / Properties / Access Links / Target URL. This is (should be) the absolute path and - except for the protocol, server etc, should be the same as you got by your implementation.

Can you access the source using this path (when using it within the browser)?

You could also check AbstractURLGenerator.java:566 for what leads to the problem within the checking class.

Hope it helps

Detlev

Former Member
0 Kudos

Hi

I added replaceAll(" ","%20")) to my code and now the code is look like that:

String tmp = "http://<server>:50000";

IURLGeneratorService url = (IURLGeneratorService)ResourceFactory.getInstance().getServiceFactory().getService(IServiceTypesConst.URLGENERATOR_SERVICE);

resultsElement.setDocURL((tmp + url.getResourcePageUri(PathKey.CONTENT_ACCESS_PATH,r.getAccessRID(),null).toString()).replaceAll(" ","%20"));

It solved the problem if the path not contain any Hebrew character but if the path contain Hebrew character I have got a broken page!!!

Has anybody any idea for solution???

Regards

Yoel