感谢您的快速回答,帕斯卡。
顺便说一句,我热烈地建议使用“有效”的servlet 2.5或servlet 3.0 web.xml(在web-app元素和xsd声明中使用version属性)。
我使用的是2.5版本的,我只是没有这部分粘贴在我的岗位
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:j2ee="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<description>WebTier for the Login Manager Service</description>
<display-name>LoginManagerWAR</display-name>
<servlet>
<description>Endpoint for Login Manager Web Service</description>
<display-name>LoginManagerControllerService</display-name>
<servlet-name>LoginManagerController</servlet-name>
<servlet-class>loginmanager.controller.LoginManagerController</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>LoginManagerController</servlet-name>
<url-pattern>/LoginManagerControllerService</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>54</session-timeout>
</session-config>
的PostConstruct工作得很好,谢谢你,但仍时加载的启动没有发生。
@WebService(
name="LoginManagerController",
serviceName="LoginManagerControllerService"
)
public class LoginManagerController {
private ILoginManager manager;
@Resource
private WebServiceContext wsContext;
@PostConstruct
private void init(){
.....
}
更多了,现在每个客户机请求使得2的init()的web服务的调用: 就像我可以在电锯看到,第一个叫的init()的服务,那么它再次打电话,然后实际上客户功能(I打印web服务类实例的哈希码和它的用于呼叫相同的实例!!!):
>消息内init()方法...控制器= 31641446
>消息登录管理器= 11229828
> .....元件的初始化.... blablabla .....
>消息退出init()方法
>消息内的init()方法...控制器= 31641446
>信息登录管理= 32361523
控制器是在控制器的init()内部创建的服务和管理器(至少有一个哈希码从第一个调用改为第二个)。
我不明白什么是错....
UPDATE 这似乎是一个以GlassFish的第三版相关的问题(也许我的ENV设置或GlassFish的配置)。我试图在Sailfin和Glassfish V2上展开这场战争,它的完美工作......
顺便说一句,我热烈地建议使用“有效的”servlet 2.5或servlet 3.0 web.xml(在web-应用程序元素和xsd声明)。 – 2010-03-30 13:07:45