我正在尝试在weblogic中配置CGI Servlet。我有一个简单的战争来测试它。我在web.xml中没什么特别的,只是一个简单的配置:
<?xml version="1.0" encoding="utf-8" ?>
<News>
<Item>
<Title><![CDATA[Example Title 01]]></Title>
<Summary>
<![CDATA[
Example Text 01
]]>
</Summary>
<Image><![CDATA[]]></Image>
<ImageWidth>1420</ImageWidth>
<ImageHeight>480</ImageHeight>
<ImageAlignment>left</ImageAlignment>
<ImageSrcSet><![CDATA[]]></ImageSrcSet>
<ImageSizes><![CDATA[]]></ImageSizes>
<Url><![CDATA[]]></Url>
<UrlText><![CDATA[]]></UrlText>
<UrlTarget>_blank</UrlTarget>
<Date><![CDATA[05/01/2009]]></Date>
</Item>
<Item>
<Title><![CDATA[Example Title 02]]></Title>
<Summary>
<![CDATA[
Example Text 02
]]>
</Summary>
<Image><![CDATA[]]></Image>
<ImageWidth>920</ImageWidth>
<ImageHeight>480</ImageHeight>
<ImageAlignment>left</ImageAlignment>
<ImageSrcSet><![CDATA[]]></ImageSrcSet>
<ImageSizes><![CDATA[]]></ImageSizes>
<Url><![CDATA[]]></Url>
<UrlText><![CDATA[]]></UrlText>
<UrlTarget>_self</UrlTarget>
<Date><![CDATA[05/01/2009]]></Date>
</Item>
</News>
并在server.xml中
<servlet>
<servlet-name>CGIServlet</servlet-name>
<servlet-class>weblogic.servlet.CGIServlet</servlet-class>
<init-param>
<param-name>cgiDir</param-name>
<param-value>/tmp/scripts</param-value>
</init-param>
<init-param>
<param-name>*.py</param-name>
<param-value>/usr/bin/python</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>CGIServlet</servlet-name>
<url-pattern>/config/*</url-pattern>
</servlet-mapping>
当我尝试访问localhost / cgitest / config / test.py时 我在服务器的日志中遇到异常:
<prefer-web-inf-classes>false</prefer-web-inf-classes>
正如我所见,weblogic.servlet.Env是weblogic.jar的一部分,它存在于服务器的lib文件夹中。也许服务器在某种程度上错误配置。 (WebLogic Server版本:12.1.1.0)
我很感激有关发现背后问题的任何提示。感谢。
答案 0 :(得分:0)
只是为了完整性。当您第一次请求CGIServlet时(例如GET /cgi-bin/hello-world.sh),您将看到类似这样的异常:
java.lang.UnsatisfiedLinkError: /home/lurodrig/development/servers/wls1221/wls12210/wlserver/server/native/linux/x86_64/libwlenv.so: libstdc++.so.5: cannot open shared object file: No such file or directory
安装该库可以解决问题。例如。在ubuntu $sudo apt-get install libstdc++5
<CGIServletSH: Exec script with args :[/bin/sh, /tmp/cgi-bin/hello-world.sh]>
希望它有所帮助,
路易斯
BTW:感谢@damian关于C库的提示