問題タブ [postconstruct]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf-2 - JSF Bean:ViewParamが設定された後に@PostConstruct関数を呼び出します
product.xhtmlとProductBeanがあります。/ product / {id}を使用して製品にアクセスするため、product.xhtmlにvalue=ProductBean.idのviewParamがあります。問題は、Bean内で、製品の詳細を入力するためにPostConstructアノテーションを指定したinit関数を使用することです。これを行うには、外部関数を呼び出すためのIDが必要です。viewParamがBeanのIDを設定する前にinitが呼び出されるので、initの内部では、idがまだ設定されていないため、外部関数を呼び出すことができないと思います。私は何を間違っているのですか、そしてこれをどのように修正しますか?
アップデート
何が悪かったのかわかりました。viewParamメソッドはCDIBeanで機能すると思いますが、ManagedPropertyメソッドはJSFBeanで機能します。
もう1つ問題があります。私のCDIBeanはRequestScopedであり、product.xhtmlがレンダリングされると、Beanが作成され、後で破棄されると思います。面白いことに、そのBean内に関数があり、呼び出すとid(view paramに接続されているために発生すると思います)を読み取ることができますが、他のプロパティは読み取ることができません。これを修正する方法はありますか?
glassfish - GlassFish 3.1.2 の PostConstruct メソッドからの EJB ルックアップ
Glassfish 3.1.2 に ear をデプロイし、Web サービスの @PostConstruct メソッドから EJB Bean を検索しようとしています。
そして得た
[#|2012-04-25T10:15:54.768+0300|SEVERE|glassfish3.1.2|browser.service.BrowserWS|_ThreadID=22;_ThreadName=admin-thread-pool-4848(4);|javax.naming.NamingException : SerialContext[myEnv={java.naming.factory.initial=com.sun.enterpri se.naming.impl.SerialInitContextFactory, java.naming.factory.state=com. sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.ur l.pkgs=com.sun.enterprise.naming} [ルート例外は javax.naming.NamingException: Invocation exception: Got null ComponentInvocation ] com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518) で com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) で
Webメソッドから同じことをしようとすると、すべて正常に動作します。
では、@PostConstruct メソッドから Bean を検索できないのはなぜですか?
仕様から、PostConstruct から java:comp/env への JNDI アクセスが可能です...
ありがとう
更新:
web.xml で次のように宣言された BrowserService
java - Springを使用して@PostConstructメソッドを持つクラスのコンストラクターをテストするには?
@PostConstruct メソッドを含むクラスがある場合、JUnit と Spring を使用してそのコンストラクターをテストし、その @PostConstruct メソッドをテストするにはどうすればよいですか? Spring を使用していないため、単純に new ClassName(param, param) を使用することはできません。@PostConstruct メソッドが起動されていません。
ここで明らかな何かが欠けていますか?
これよりも似たようなものがありますが (少し複雑ですが)、 @PostConstruct メソッドはヒットしません。
servlets - @PostConstructがJBoss5で機能しない
com.sun.jersey.spi.container.servlet.ServletContainer
( Jersey RSの)変更できないサーブレットがあります。私にできることは、そのサブクラスを作成することです。ただし、サーブレットが初期化されるときに、サブクラスの1つの関数を実行する必要がありました。init
ジャージーコードがあるため、メソッドをオーバーライドできません。
メソッドのアノテーションを使用して@PostConstruct
初期化後に実行しようとしましたが、機能しません(ただし、Tomcat 6では機能します)。web.xml
クラスでは、起動時に実行するように設定されています。
jsf - @PostConstructが@FacesValidatorで機能しない
ポストコンストラクトアノテーションはバリデーターでサポートされていませんか?
アプリケーションスコープのjndiservicelocatorBeanがあり、これを管理プロパティとしてバリデーターに挿入します。
必要なリモートBeanを初期化するためのpostconstruct注釈付きメソッドが呼び出されることはないため、リモートBeanはnullのままです。
java - 春のシングルトンが2回呼び出される
私の春のアプリケーションにいくつかの問題を抱えています。
私は非常に単純な春の豆を持っています、それらは他の様々な春の豆に注入されます。私が見つけたデバッグ中に、それらは2回呼び出され、Constructorと@PostConstructは両方とも2回呼び出されています。
私のアプリケーションにはフロントエンドテクノロジーがありません。その単純なバックエンドタスク関連。
スプリング構成
春豆クラス
コンストラクター「TransactionDAO」が2回呼び出されています。
によってコールスタックトレースを監視しようとしました
そしてそれが次を示すたびに
java - Spring - Bean の初期化を停止する
私の Bean は InitializingBean を実装し、afterPropertiesSet メソッドで検証を実行したいと考えています。
問題は、私の検証が、この時点で完全にロードされていない他の Bean、JPA Bean のような Bean を使用していることです。
私は@PostConstruct
注釈も使用しました-このメソッドはafterPropertiesSet
メソッドの前に呼び出すため、これはさらに悪いことです..この問題を解決する方法について何か提案はありますか?
spring - Spring3 @PostConstruct は、Tomcat の起動後に null になり、サービス クラスで使用しようとすると Null オブジェクトを取得します
皆さん、こんにちは私がやろうとしているのは、@Value と @PostConstruct を使用して CustomDetail オブジェクトにいくつかのプロパティを事前に入力し、この事前入力されたオブジェクトをサービスで使用することですが、オブジェクトがサービス クラスに到着すると、すでに null です...
更新しました!!!!これは正しいコードです
これで、setProperty() メソッドは効果的に正しく機能します。デバッグ時に Tomcat を起動すると、propertyPrx が適切であり、オブジェクト prx が null ではないことがわかります...したがって、新しい ProxyObject(propertyPrx) は問題なく呼び出されます。この時点ですべて大丈夫。今、サービス部分に移動して使用しようとすると
なぜこれが起こっているのか、Tomcatが初めて起動したときにのみ@PostConstructが初期化される理由と、サービスクラスに注入しようとしたときに、初期化されなかった場合のように、すでにnullになっている理由を教えてください...私はあなたの助けに感謝しますSpringMVC 3.1 Tomcat を使用する
java - WebSphere での @PostConstruct 例外処理の動作
短い: (Portlet-)Container は、バッキング Bean の @PostConstruct メソッドによってスローされた例外を飲み込みます。
この動作は意図的なものですか、バグですか、それともコンテナー固有ですか?
長文: WebSphere Portal 7 でポートレットを実行しています。このポートレットでは、PhaseListener でマネージド Bean の構築を強制して、Bean の構築中または構築後のシステムで回復不能な問題が発生したときに、ユーザーを開始ページに戻すことができます。
次のコードを使用して、構築を「強制」しています。
@PostConstruct メソッドから RuntimeException をスローしてテストしました
スタック トレースは RAD(Eclipse) ログで終了します。
しかし、私の PhaseListener でキャッチする例外はなく、@PostConstruct 中に例外を認識せずに喜んで続行します。
この動作は意図的なものですか、バグですか、それともコンテナー固有ですか?
少なくともJBossには同様の処理方法があるようです: http://www.coderanch.com/t/499013/JSF/java/PostConstruct-exception-handling
jsf - スーパーBeanで@PostConstructを呼び出し、Beanを拡張する
@PostConstructを持つBaseBeanと、それを拡張するBeanがあり、その上で別の@PostConstructを呼び出したいと思います。可能だと言った場所をいくつか読んだことがありますが、拡張クラスの@postConstructが最初に呼び出されたようです(2番目が呼び出された場合)。次に、スーパーBeanのPostConstructがすでに呼び出されていると想定しているため、「コンテキスト」でNPEを取得します。
これは実行可能ですか?もしそうなら、私は何を間違っていますか?
ベースビーン:
Beanの拡張:
ありがとう、ヨタム。