jsp and servlet problems - eclipse

I am using eclipse to make a connection between a jsp file and a servlet
I am trying to create servlet com.example.servlet.MyServlet , and a I have got a simple jsp code search.jsp in the WebContent
the jsp code is some thing linke this
<form method = "post" action = "MyServlet">
<br><label for="title">Title</label>
<input type="textbox" name="title" value="" /></br>
<br><label for="auther">Auther</label>
<input type="textbox" name="auther" value="" /></br>
<br><label for="date">Date</label>
<input type="textbox" name="date" value="" /></br>
<br><label for="subject">Subject</label>
<input type="textbox" name="subject" value="" /></br>
<br><input type="submit" name = "search" value ="search" align="center"></br>
</form>
MyServlet is known in the web.xml file , but when I run the program it gives
javax.servlet.ServletException: Wrapper cannot find servlet class com.journal.servlet.SearchServlet or a class it depends on
and
java.lang.ClassNotFoundException: com.journal.servlet.SearchServlet
I cannot figure out what is the problem since I think every thing is in its right place.

Error says it can not find com.journal.servlet.SearchServlet class and You have mentioned that you have servlet at com.example.servlet.MyServlet
The compiled .class file must end up in /WEB-INF/classes/com/example/servlet/MyServlet.class.
So, Based on mentioned scenario in your post. altering associated <servlet-class> entry in web.xml should work.
Also Check
Project>Build Automatically
maybe you accidentally disabled the auto-deploy features.

Your web.xml file should have
Servlet location
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.servlet.MyServlet</servlet-class>
</servlet>
servlet mapping
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
the console shows that your package is com.journal.servlet.... NOT this com.example.servlet... make sure you have defined your package correctly. So rename your package

Related

Issues generating Enterprise jar for Salesforce Soap API; issue with generated WSDL XML from Salesforce

I've recently made some databasae changes to custom objects, and I'm trying to generate a new enterprise.jar to reflect these changes. I'm following all documentation located here for the process. I'll also note, with the exception of some new dependencies, I've followed this process before with no errors to generate the enterprise.jar file. So this is a process that has worked for my sandbox in the past, but we haven't had any structural changes to the database in a solid 5 years.
Following along with the steps is simple enough. I generate the XML file from my Salesforce login in my developer sandbox utilizing Enterprise WSDL (we clearly have Enterprise level service, just so that's established). From there, I go to the Maven repository, get force-wsc-48.0.0.jar from there (as per the current API version of my sandbox), and then download a few dependencies like rhino, ST, and antlr-runtime. I get all files together in a temp folder in my C drive and try running command:
java -classpath C:\temp\force-wsc-48.0.0.jar;C:\temp\rhino1_7R4\js.jar;C:\temp\ST-4.3.1.jar;\jdk\jdk1.8.0_251\lib\tools.jar;C:\temp\antlr-runtime-3.5.jar com.sforce.ws.tools.wsdlc C:\temp\enterprise.wsdl C:\temp\enterprise.jar
Here's where the trouble begins. Once I run this, I hit the following error:
Exception in thread "main" com.sforce.ws.wsdl.WsdlParseException: Parse error: Found invalid XML. could not determine namespace bound to element prefix xsd (position: TEXT seen ...ration value="ACTIONCALL_DUPLICATE_INPUT_PARAM">\r\n<xsd:annotation>... #17360:17)
at com.sforce.ws.wsdl.WsdlParser.next(WsdlParser.java:94)
at com.sforce.ws.wsdl.Definitions.read(Definitions.java:111)
at com.sforce.ws.wsdl.WsdlFactory.createFromInputStream(WsdlFactory.java:69)
at com.sforce.ws.wsdl.WsdlFactory.create(WsdlFactory.java:49)
at com.sforce.ws.codegen.Generator.generate(Generator.java:94)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:115)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:149)
at com.sforce.ws.tools.wsdlc.main(wsdlc.java:71)
Caused by: com.sforce.ws.ConnectionException: Found invalid XML. could not determine namespace bound to element prefix xsd (position: TEXT seen ...ration value="ACTIONCALL_DUPLICATE_INPUT_PARAM">\r\n<xsd:annotation>... #17360:17)
at com.sforce.ws.parser.XmlInputStream.next(XmlInputStream.java:138)
at com.sforce.ws.wsdl.WsdlParser.next(WsdlParser.java:90)
... 7 more
Caused by: com.sforce.ws.parser.XmlPullParserException: could not determine namespace bound to element prefix xsd (position: TEXT seen ...ration value="ACTIONCALL_DUPLICATE_INPUT_PARAM">\r\n<xsd:annotation>... #17360:17)
at com.sforce.ws.parser.MXParser.parseStartTag(MXParser.java:1826)
at com.sforce.ws.parser.MXParser.nextImpl(MXParser.java:1144)
at com.sforce.ws.parser.MXParser.next(MXParser.java:1111)
at com.sforce.ws.parser.XmlInputStream.next(XmlInputStream.java:136)
... 8 more
A snipped of the XML at error line:
<!--
These are the extension code to provide additional error information
-->
<simpleType name="ExtendedErrorCode">
<restriction base="xsd:string">
<enumeration value="ACTIONCALL_DUPLICATE_INPUT_PARAM">
<xsd:annotation>
<xsd:documentation>
Errors with this extended error code have the following properties: severity, actionCallName, parameterName
</xsd:documentation>
</xsd:annotation>
</enumeration>
<enumeration value="ACTIONCALL_DUPLICATE_OUTPUT_PARAM">
<xsd:annotation>
<xsd:documentation>
Errors with this extended error code have the following properties: severity, actionCallName, parameterName
</xsd:documentation>
</xsd:annotation>
</enumeration>
Parent schema:
<schema elementFormDefault="qualified" targetNamespace="urn:fault.enterprise.soap.sforce.com">
<import namespace="urn:enterprise.soap.sforce.com"/>
I don't know if it's necessary, but I'll note that there's no <xsd:schema...> at all in the XML file. xsd is used before this, but only to define element string types; eg: <element name="sessionId" type="xsd:string" nillable="true"/>
If I remove xsd prefix from everything that causes the error, I'll instead get the same error, but for soap instead of xsd. XML snippet of first instance of that:
<!-- Soap Binding -->
<binding name="SoapBinding" type="tns:Soap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<soap:operation soapAction=""/>
<input>
<soap:header use="literal" message="tns:Header" part="LoginScopeHeader"/>
<soap:body parts="parameters" use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
There's no parent schema here.
Again, there is no <soap:schema...> defined in the XML. And if I remove all of the instances of using the soap prefix, I'll land on the following issue.
Exception in thread "main" com.sforce.ws.wsdl.WsdlParseException: targetNamespace not specified in wsdl:definitions
at com.sforce.ws.wsdl.Definitions.read(Definitions.java:115)
at com.sforce.ws.wsdl.WsdlFactory.createFromInputStream(WsdlFactory.java:69)
at com.sforce.ws.wsdl.WsdlFactory.create(WsdlFactory.java:49)
at com.sforce.ws.codegen.Generator.generate(Generator.java:94)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:115)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:149)
at com.sforce.ws.tools.wsdlc.main(wsdlc.java:71)
Again, not sure if it matters, but there's no <wsdl:definitions...> in the XML file.
I don't know if this is an issue of Salesforce generating a bad XML file (the issue occurs even in sandboxes I haven't made any database changes for, including production where I have an old but working enterprise.jar), if I don't have the right force-wsc jar file, if I'm not running it through the right version of Java (1.8, if it wasn't clear, but I've tried earlier versions of java and I just get the minor.major 52 error, which means it should be 8, as far as I know).
Any help pinpointing what the issue here is would be greatly appreciated. I'm more than open to suggestions. And if it is just Salesforce giving me a bad XML file, I can open a ticket there. I just want to make sure I'm not doing something wrong before I open a ticket.
After spending more time on this, and after coordinating with a co-worker who works on a different Salesforce project, we've discovered the following
1 Salesforce was absolutely giving a bad WSDL file.
2 The generation of the bad WSDL file only occurred because I was using a Firefox web browser. Using Chrome instead to access the WSDL generation fixed the issue, of all things.
So for any poor soul that comes across this issue in the future, I hope using Chrome fixes it for you as well.

Atlassian Confluence Blueprint wizard - Non existent soy template

I am building a confluence plugin including blueprint wizard dialog with blueprint. But when I try to load the wizard JS error appears in browser console,
Uncaught error wizard points to a non-existent Soy template, OutputPlugin.Blueprints.Simple.page1Form'. Check your web-resources or server logs.
What I have tried are,
Checked server logs. No evidence was there.
Tried clean and reinstall plugin and SDK.
However, I have already added soy into web resources in atlassian-plugin.xml file.
I followed atlassian confluence plugin tutorial "Write an intermediate blueprint plugin"
I am using Confluence 6.14.0 and atlasisian SDK 8.16.0
atlassian-plugin.xml
<web-resource key="ma2.create_wizard-resources" name="ma2.create_wizard Web Resources">
...
<transformation extension="soy">
<transformer key="soyTransformer">
<functions>com.atlassian.confluence.plugins.soy:soy-core-functions
</functions>
</transformer>
</transformation>
...
<resource type="download" name="outputTemplate.soy.js" location="/soy/outputTemplate.soy" />
</web-resource>
<blueprint key="output-blueprint" content-template-key="output-template" index-key="output-index" i18n-name-key="output.blueprint.name">
<content-template ref="output-template"/>
<dialog-wizard key="outputTemplate-wizard">
<dialog-page id="page1Id"
template-key="OutputPlugin.Blueprints.Simple.page1Form"
title-key="output.blueprint.wizard.page1.title"
description-header-key="test"
description-content-key="test1"
last="true"/>
</dialog-wizard>
</blueprint>
outputTemplate.soy
{namespace OutputPlugin.Blueprints.Simple}
/**
* A form that accepts a person's name
*/ 
{template .page1Form}
<form action="#" method="post" class="aui">
<fieldset>
<div class="field-group">
<label for="contentvar">{getText('output.blueprint.form.label.title.vName')}</label>
<input id="contentvar" class="text" type="text" name="contentVar">
</div>
</fieldset>
</form>
{/template}
Finally found the solution. First problem was my server console did not logged necessary logs. There were only java jdk and synchrony logs. So I configured logs as mentioned in this confluence support page to have all the logs of "com.atlassian.confluence.core". Then I found the error
[INFO] [talledLocalContainer] com.atlassian.soy.impl.QuieterSoySyntaxException: In file /soy/outputTemplate.soy: End of SoyDoc not at end of line [line 4, column 1].
Finally the problem was a space after end of soy doc.
/**
* A form that accepts a person's name
*/{space}
instead of
/**
* A form that accepts a person's name
*/

Phing PropertyTask - what is a fallback project scope?

Update: This question is outdated. The fallback attribute can no longer found in the manual.
According to the Phing User Guide, PropertyTask provides a fallback attribute to specify a "fallback project scope" in case a reference cannot be found.
I tried to run this but it's obviously wrong:
<property name="test1" value="ok" />
<property name="test2" refid="nonExistentRef" fallback="test1" />
<echo>${test2}</echo>
Result:
Fatal error: Uncaught TypeError: Argument 1 passed to Reference::getReferencedObject() must be an instance of Project, string given, called in [...] classes/phing/tasks/system/PropertyTask.php on line 339 [...]
Can you provide me with a working usage example?
fallback expect a Project instance, and I think that it cannot be passed from build file.
Did you try with:
<property name="test1" value="ok" />
<property name="test2" refid="test1" />
<echo>${test2}</echo>
Output:
[echo] ok

java.lang.ClassNotFoundException: com.ebank.rajeev.controllers.Alogin

I'm getting this error on eclipse console,
java.lang.ClassNotFoundException: com.ebank.rajeev.controllers.Alogin
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1526)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1482)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
On running the jsp page, tomcat says
HTTP Status 404 -
type Status report
message
description The requested resource is not available.
My code is correct. Still I'm unable to find a way.
web.xml
<servlet-mapping>
<servlet-name>Alogin</servlet-name>
<url-pattern>/Alogin</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>Alogin</display-name>
<servlet-name>Alogin</servlet-name>
<servlet-class>com.ebank.rajeev.controllers.Alogin</servlet-class>
</servlet>
admin.jsp
<form method="post" action="Alogin">
<div>
<input type="password" name="uname" placeholder="username" />
<input type="password" name="pwd" placeholder="password" />
<input type="submit" id="search-submit" value="Login" /><br />
</div>
</form>
Alogin servlet
String uname=request.getParameter("uname");
String pwd=request.getParameter("pwd");
if(uname.equals("admin") && pwd.equals("admin"))
{
HttpSession session=request.getSession();
session.setAttribute("UNAME",uname);
response.sendRedirect("AdminHome.jsp");
}
else
{
response.sendRedirect("admin.jsp?msg=invalid");
}
Java build path has required jar files, i.e., servlet-api.jar, jsp-api.jar, mysql-connector.jar. I'm using any sql code for this page still it is giving the error.
Go to Project Properties and on Deployment Descriptor, add Java Build path entries and a reference to your source folders, usually /src/main/resources to WEB-INF/classes. Do Project>Clean and restart the server.
I think that com.ebank.rajeev.controllers.Alogin class will not be present in the jars you mention. You have to review what third libraries are required in your project.
If you have a bunch of libraries, and you don't know where is com.ebank.rajeev.controllers.Alogin provided, then you can use jarscan a great tool to find the appropriate jar.
You can download jarscan from here http://www.oracle.com/splash/java.net/maintenance/index.html
And use it in this way:
java -jar jarscan.jar -d /path/to/find/libraries -j com.ebank.rajeev.controllers.Alogin

JOSSO's <ignore-url-patterns> example needed

Just wondering if anyone could show me an example of how the works with JOSSO's partner-app in joss-agent-config.xml?
Just solved this today. To set URL patterns for the JOSSO ignore-url-patterns tag you need to use a tag from another namespace:
<agent:partner-app context="/" id="Liferay">
<agent:ignore-url-patterns>
<s:value>*.css</s:value>
<s:value>*.js</s:value>
<s:value>*.gif</s:value>
<s:value>*.jpg</s:value>
<s:value>*.png</s:value>
</agent:ignore-url-patterns>
</agent:partner-app>
This assumes that you have xmlns:agent="urn:org:josso:agent:core" and xmlns:s="http://www.springframework.org/schema/beans".
The XSD for the ignore-url-patterns uses the "##other" scope so it must be a tag from another namespace. I've used spring's <value /> tag because it is a simple container for a string and will work great for holding the various url patterns that you want to use.
<configuration>
<agent:agent-configuration>
<!-- ============================================================================= -->
<!-- -->
<!-- JOSSO Parnter application definicions : -->
<!-- -->
<!-- Configure all web applications that should be a josso partner application -->
<!-- within this server. -->
<!-- For each partner application you have to define the proper web-context. -->
<!-- ============================================================================= -->
<agent:partner-apps>
<agent:partner-app id="AdminApp" context="/admin"/>
<agent:partner-app id="HOME" context="/home" >
<ignore-web-resource-collections>public-resources,img-resources</ignore-web-resource-collections>
</agent:partner-app>
<agent:partner-app id="EmployeeApp" context="/emp"/>
<agent:partner-app id="AuditApp" context="/audit"/>
</agent:partner-apps>
</agent:agent-configuration>