私はこれがICM 7.7で動作することを知っていますが、それは7.4以降であったと思います。
Guice Servlet Extensionを使用できます。
1.カートリッジ内のGuiceサーブレットへの依存性を確認してください。build.gradle
。 例:
dependencies
{
...
compile group: 'com.intershop.platform', name: 'servletengine'
compile 'com.google.inject.extensions:guice-servlet'
...
}
2.Defineカートリッジobjectgraph.properties
でサーブレットモジュール。 例:
global.modules = com.example.modules.DemoServletModule
3.Implementサーブレット。 例:
public class DemoServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
resp.getWriter().append("Hello, world!");
}
}
4.Createモジュール実装。 Gotcha:コメントは、/servlet/
で始まる名前で始まる必要があります。 例:
import javax.inject.Singleton;
import com.google.inject.servlet.ServletModule;
public class DemoServletModule extends ServletModule
{
@Override
protected void configureServlets()
{
bind(DemoServlet.class).in(Singleton.class);
serve("/servlet/DEMO/*").with(DemoServlet.class);
}
}
4.Build、再起動、してみてください。 例:
GET /servlet/DEMO/hey HTTP/1.1
Host: example.com:10054
....
Reposnse:
Hello, world!
UPDATE:
あなたのサーブレットは、あなたがそれを許可する必要がwebadapterを通して見えることを希望の場合。このセクションに
1.Open IS_SHARE\system\config\cluster\webadapter.properties
2.Navigate:あなたのサーブレットの
## The list of servlets, which can be accessed through the generic
## .servlet mapping. The WebAdapter forwards only requests of the form
## /servlet/<group><servlet.allow.x>...
3.Addエントリ。例:
servlet.allow.4=/DEMO
4.Access類似したURLでサーブレット:
https://example.com/INTERSHOP/servlet/WFS/DEMO/hey
こんにちはLachezar!ご協力いただきありがとうございます。私は正しい方向に私を入れています。私は 'servletengine'と 'guice-servlet'の依存関係を宣言する必要はありませんでした。それはなくても働いた。 私の間違いは、サーブレットモジュールのアクセスパスを "/ DEMO/*"だけで宣言していました。 "/ servlet"をサーブレットパスの前に置いてください。 –
アップデートもご覧ください。 –
ありがとう!これは本当に私の頭の中でやっていた。 –