Monitor resources of a Web app ?

In WL 6.1, is there a way of monitoring in real time (or at short intervals) the resources
taken by a web app ? Some measuring metrics I would like to see are : how much memory,
cpu utilization, disk or database access, execution time, etc ...
Displaying them in a graph would be nice.
I notice that there is a "monitoring" tab for the Web application, but I don't know
how to view the numbers in real time and graphically. Does anyone know how ? Is
there a third party tool for monitoring ?

You can do it, using JMX and the appropriate Weblogic MBean. Read the
docs on JMX and look at how the console is built.
To quickly see the available MBeans, deploy the war from
http://dima.dhs.org/misc/StartHtmlAdaptor.jsp
and connect to the machine:8082 with the browser. Excellent tool.
On 10 Jul 2002 12:06:38 -0700, "athooya" <[email protected]> wrote:
>
In WL 6.1, is there a way of monitoring in real time (or at short intervals) the resources
taken by a web app ? Some measuring metrics I would like to see are : how much memory,
cpu utilization, disk or database access, execution time, etc ...
Displaying them in a graph would be nice.
I notice that there is a "monitoring" tab for the Web application, but I don't know
how to view the numbers in real time and graphically. Does anyone know how ? Is
there a third party tool for monitoring ?

Similar Messages

  • How to locate a resource in a Web app in Weblogic 5.1

    I am running Weblogic 5.1 with sp10 in SunOS 5.7. I am trying to load
              a resource (a property file) by calling a function like this.
              InputStream In = getClass().getClassLoader().getResourceAsStream("/xyz.properties");
              This function is being called by a servlet loaded in a Servlet context
              in a Web application say "Test".
              Actually the same is not called directly by the Servlet but a class
              which the servlet calls instead.
              My question is where can i put the property file for it to locate.
              To my knowledge as per Servlet2.2 specification the resource will be
              loaded if it is in the /WEB-INF/classes or /WEB-INF/lib directory of
              the webapp.
              But surprisingly it is not able to locate the same resource in that
              path.
              If i put the same property file in some directory which is in
              WEBLOGIC_CLASSPATH, then the same gets loaded.
              Could anyone please clarify what is happenning here and what is that i
              have got it wrong if any ..!
              Thanks in advance.
              Venky
              

    Hi Ramien,
    you must specify a path, but this may also be relative, and that means also be empty; for details:
    <i>A pathname, whether abstract or in string form, may be either absolute or relative. An absolute pathname is complete in that no other information is required in order to locate the file that it denotes. A relative pathname, in contrast, must be interpreted in terms of information taken from some other pathname. By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.</i>
    See http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html for further details.
    Hope it helps
    Detlev

  • Can't deploy web app with resource: New source location

              I can't deploy a web app (.war) if I already have a resource (.rar) deployed, weblogic
              7.0 reports
              weblogic.management.ManagementException: New source location, C:\projects\j2ee\dev\ra\dist\rware.war,
              cannot be deployed to configured application, rware. Application source is at
              C:\projects\j2ee\dev\ra\dist.
                   at weblogic.management.deploy.DeployerRuntime.validatePath(DeployerRuntime.java:786)
                   at weblogic.management.deploy.DeployerRuntime.unprotectedActivate(DeployerRuntime.java:319)
                   at weblogic.management.deploy.DeployerRuntime.access$0(DeployerRuntime.java:282)
                   at weblogic.management.deploy.DeployerRuntime$1.run(DeployerRuntime.java:947)
              The resource works ok, and the web app does not use or reference
              the resource (it's a simple servlet that just displays a message), so why is there
              an interdependence?
              

              Thanks! We'll follow up on this.
              >
              >I discovered the cause - the .war and .rar both had the same
              >filename root, i.e. myFilename.war and myFilename.rar. I
              >solved the problem by changing the .war to myFilenameWeb.war.
              >
              >And yes, this is with WLS 7.0.
              >
              >"Deb June" <[email protected]> wrote:
              >>
              >>Hi Glen,
              >>
              >>Could you please describe the steps that you took to get this?
              >>
              >>Thanks!
              >>
              >>P.S. For others looking at this - it looks like this is using WLS 7.0.
              >>
              >>>
              >>>I can't deploy a web app (.war) if I already have a resource (.rar)
              >>deployed,
              >>>weblogic
              >>>7.0 reports
              >>>
              >>>weblogic.management.ManagementException: New source location, C:\projects\j2ee\dev\ra\dist\rware.war,
              >>>cannot be deployed to configured application, rware. Application source
              >>>is at
              >>>C:\projects\j2ee\dev\ra\dist.
              >>>     at weblogic.management.deploy.DeployerRuntime.validatePath(DeployerRuntime.java:786)
              >>>     at weblogic.management.deploy.DeployerRuntime.unprotectedActivate(DeployerRuntime.java:319)
              >>>     at weblogic.management.deploy.DeployerRuntime.access$0(DeployerRuntime.java:282)
              >>>     at weblogic.management.deploy.DeployerRuntime$1.run(DeployerRuntime.java:947)
              >>>
              >>>The resource works ok, and the web app does not use or reference
              >>>the resource (it's a simple servlet that just displays a message),
              >so
              >>>why is there
              >>>an interdependence?
              >>
              >
              

  • Have Web App/Transaction monitoring alert only when majority of watcher nodes are in error?

    We do a lot of web app/transaction monitoring and we have watcher nodes distributed globally. When we have connectivity issues at a site hosting a watcher node, the web monitors that target the watcher node in that site all alert even though all the other
    watcher nodes are fine.
    We'd like to reduce the noise from our web monitoring by having alerts fire only when a majority, or some other defined ratio, of watcher nodes are in an error condition. Is this possible, and if so, how?
    For reference, we're running 2012 R2 and monitor hundreds of URLs. This list of URLs and watcher nodes is fairly dynamic, so we'd prefer to find a solution that doesn't require manual development (e.g. creating distributed apps), however if that's the only
    path then it would also be good to know.

    First, disable the alerts from the web application that you have created.
    Next, create a new distributed application.  Use the 'Blank (Advanced)' template.  When it comes to choosing the management pack, set it to be the same as the one used for the web monitor.
    Once the distributed application designer has loaded, client the 'Add Component' button.
    Give it a name - Something like 'Appname web monitor component group'
    Choose the 'objects of the following type(s)' radio button.  Navigate the tree:
    Entity -> Logical Entity -> Perspective -> Web Application Perspective -> YOURWEBMONITOR
    Tick the box next to the name of your web monitor.
    Now, on the left, in the Objects bar, you should see the watcher nodes for your web application.  Add ALL the watcher nodes into the component group by dragging them in.
    Now save your distributed application.
    Click the title of the component group that you have just created, down the bottom right of the window there will be a link called 'Configure Health Rollup'.  Click that.
    In the override properties window, Tick the box next to the 'Rollup Algorithm' and change the Override Value to Worst state of a percentage of members in good health state' and override 'percentage' value into your expected value.
    OK the changes and then save the distributed application once again.
    Before you exit the designer, note the name of the component group that you created.
    Finally, we have to enable alerting for that component group.  To do this, exit the designer and you should be back in the Authoring pane of the console.
    Go to "Management Pack Objects\Monitors" in the console.  Click on the Scope toolbar button to  scope the view -
    if a scope was previously active, this will disable the scoped view, so click the button again.  You should be presented with a "Scope Management Pack Objects Window"
    Click the "Clear All" button at the bottom of that window, then type in the
    name of the component group that you noted down earlier into the search box.  A single line should be displayed in the search results.  Tick the box and click OK.
    There should now be a yellow bar saying that the view has been scoped to your web application component group.  Underneath will be a tree view of the monitors in your web applicaion.
    Expand the tree view until you find a monitor called "Component Group Health Roll-up for type..."
    Open the properties of that item, go to the alerting tab and
    enable the "generate alerts for this monitor" checkbox.
    You can then fill in the alert name and description as well as other things like severity and whether or not the alert will close when the monitor is healthy.
    Roger

  • Web App Monitor Dash board is blank after switching to paid subscription

    Hello,
    I have successfully created a web app, published it to azure, and have been monitoring it on the Monitor dash board with all the 6 metrics, cpu time, requests, data in, data out etc. ever since starting the trial, and have watched the metrics on the dashboard
    show all the data without any problems. 
    This past weekend, we switched over to a paid subscription, and now the monitor dashboard is blank. No metrics are being shown, and I have all the previous metrics selected so they should be displayed in the window. I switched over to the "New Portal"
    thinking that there may be an issue with the default management portal, but the new management portal is also blank.
    We also have a SQL Azure database as well, and I am not having any problems viewing any of the metrics for the database from either the default management portal or the New portal?
    Can anyone explain why this might be happening?
    thanks

    Hi,
      I think this may be a Azure server issues, If your issue is still not fixed, then i would suggest you Open a Billing Ticket from portal by selecting portal errors and exceptions.
      you can create a billing ticket
    here.
      I am also moving this thread to "Azure App Service - Web Apps" Forums for any other inputs from the respective community members.
    Regards,
    Nithin Rathnakar

  • Accessing other webpage resources when the Adobe form is oppend in a web app

    Hello,
    We have a web application and part of that web page is a PDF form. How can I access the other web page frames contents? For example, if the I update a field inside the form, I want to be able to request the web app to update the other frame in the same web page.
    Is this possible?
    Regards,
    Yasser

    Set the display properties to HideMenubar or HideWindowUI either inside the PDF (e.g. with the itext library), or via pdf open params appended to the URL: http://partners.adobe.com/public/developer/en/acrobat/PDFOpenParams.pdf
    Regards, Kolja

  • Azure Web Apps extremely unstable following switch from VMs

    Last week we made the switch from Azure VMs to Azure Web Apps (web sites). The main reason for doing so was to take advantage of continuous deployment, auto-scaling and deployment slots.
    We have 4 web apps running on S2 instances (currently scaling up to 2 instances). We then have 4 other virtual machines that host our databases (RavenDB) and another web app that cannot be hosted on Web Apps. We're using VNETs to connect everything together.
    Previously the entire system was hosted on just 2 virtual machines.
    A week on we're finding
    a) Performance has degraded
    b) The Web Apps (and associated service) are increasingly unreliable
    We used to deploy frequently throughout the day without issue. Since moving to Web Apps we regularly experience 503 errors for up to a minute following a deployment. We switched to staging slots to try and circumvent this but even this hasn't been foolproof.
    We're now actually reluctant to deploy changes to our API during the day because it has been so unreliable.
    Performance has also suffered - we're using New Relic for monitoring and our throughput has halved since moving to Web Apps despite the web apps actually having more resources than they did before.
    Auto-scaling has also been very hit and miss. Our apps rarely put any load on CPU but they can use quite a lot of memory. We set up auto-scaling based on memory but rather unhelpfully the new portal changed our "less than or equal to" scaling rule
    to "equal to" meaning that the instances never scaled down - thanks Azure! I believe this is still an issue in the portal.
    We've gone from almost 6 months of 100% uptime to a week of regular issues. We deployed a new web app today and attached it to the same to virtual network used by our other apps and it caused a disruption in the other apps - our API could no longer contact
    the virtual machine hosting RavenDB.
    All-in-all this has not been a great experience and if it's a choice between reliability/performance and the bells and whistles that Azure Web Apps provide, I'll be going back to VMs.

    Hi David,
    It's an ASP.NET Web API application and we're deploying with Web Deploy.
    When we first switched to Web Apps and deployed directly to the "live" instance we found that we were getting 503 errors. There were no errors in our application logs (Elmah) so I'm assuming this is an issue outside of the application. We do have
    250 or so sites that are serviced by the API so I would expect a slight delay whilst the application starts but certainly not a 503. In some cases we had to re-deploy (the same code) to get things back.
    We then switched to using Staging Slots to try and avoid this issue. Whilst this avoided the 503 errors most of the time, the time it takes for the application to come back up following a deployment has increased dramatically - and this is despite "hot
    swapping" from staging to production.
    Yesterday I tested this by deploying to staging and then swapping the deployment. It took over 30 seconds following the swap before the API was available. When I used to deploy to the VM it was available almost immediately.

  • Web app security not working

    Hi,
    I am using WebLogic 8.1 platform. I am trying to create a very basic secure web
    app.
    I created an App and created a web project. In it, I deleted the controller, etc
    and just have index. jsp. All the index.jsp does is: <%= request.getRemoteUser()
    %>
    In web.xml I have
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Success</web-resource-name>
    <url-pattern>*.jsp</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>*</role-name>
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>default</realm-name>
    </login-config>
    <security-role>
    <role-name>*</role-name>
    </security-role>
    In weblogic.xml I have
    <security-role-assignment>
    <role-name>dealers</role-name>
    <principal-name>dealer1</principal-name>
    </security-role-assignment>
    When I run the app, it just renders the JSP and does not challenge me to login.
    Can you please help what is that I am doing wrong here?
    Thanks,
    John

    "john hryn" <[email protected]> wrote in message
    news:3fce2551$[email protected]..
    >
    Hi,
    I am using WebLogic 8.1 platform. I am trying to create a very basicsecure web
    app.
    I created an App and created a web project. In it, I deleted thecontroller, etc
    and just have index. jsp. All the index.jsp does is: <%=request.getRemoteUser()
    %>
    In web.xml I have
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Success</web-resource-name>
    <url-pattern>*.jsp</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>*</role-name>I think you should have dealers instead of *
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>default</realm-name>
    </login-config>
    <security-role>
    <role-name>*</role-name>And here too.
    </security-role>
    In weblogic.xml I have
    <security-role-assignment>
    <role-name>dealers</role-name>
    <principal-name>dealer1</principal-name>
    </security-role-assignment>

  • Office Web Apps is not working

       Hi,
         We have tried to deploy Office Web Apps Server but, after a number of tests, we haven't been able to view PowerPoint presentations. We tested "everything" but it didn't work.
         Finally, to simplify and focus the problem, we just deployed Office Web Apps Server "on its own", that is: just Internal URL, HTTP, Open From URL Enabled and sharing docs from a shared folder in the same server. So we have:
         \\wacserver\share\<Docs> (Excel, Word and PowerPoint)
         http://wacserver
         They work both "/hosting/discovery" and "/op/generate.aspx".
         If we try to view Excel doc, it works. If we try to view Word or PowerPoint, id doesn't work.
         For PowerPoint, it appears the PowerPoint Web Apps frame (FILE, START SLIDE SHOW, SLIDE - OF -, NOTES...) and, in the center, an animation 
    "PowerPoint Web App .....". After a couple of minutes, it stops with "Either you've lost network connectivity or our server is to busy to handle your request".
         What we have seen from different sources:
    FIDDLER
    ======
         /op/view.aspx?... Response 200
         /p/PowerPointFrame.aspx?... Response 200
         /p/imagehandler.ashx?... Response 202
         13 petitions to /p/ppt/view.svc/jsonAnonymous/GetPresentation Response 200
    PROCESS MONITOR
    ==============
         There were some folders and registry keys Network Service was trying to access with ACCESS DENIED response. We gave it permissions and they disappeared.
         SYSTEM is trying to access some registry keys (SpellingWcfprovider.exe => HKU\S-1-5-18, ImagingService.exe => HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options, and 2 or 3 more). It gets an ACCESS DENIED
    but SYSTEM, we have checked, has "Full control" permissions in those keys or folders.
         These errors appear by Office Web Server running itself, although we are not making a PowrPoint file request.
    ULS
    ===
         Several times, it tries to find the PowerPoint presentation in the caché, doesn't find it, manage to get it but, when trying to put it in the cache, it receives a disk space error:
    Determined file name [PowerPoint.pptx] from [\\wacserver\share\PowerPoint.pptx]
    AFileFetcher: Starting Unc download at [\\wacserver\share\PowerPoint.pptx]
    Begining UNC Download for [\\wacserver\share\PowerPoint.pptx]
    Reading next block of bytes for [\\wacserver\share\PowerPoint.pptx]
    End reading block of bytes for [\\wacserver\share\PowerPoint.pptx]
    Reading next block of bytes for [\\wacserver\share\PowerPoint.pptx]
    End reading block of bytes for [\\wacserver\share\PowerPoint.pptx]
    AFileFetcher: Done downloading file. [\\wacserver\share\PowerPoint.pptx]
    Downloaded file from final URL [\\wacserver\share\PowerPoint.pptx] with SHA256 [Y/whX0EzCZJQdHym/OPrMdrNVg0h8SwrC0TehaKIQdU=]
    AFileFetcher: Will cache web file info to memory cache. [\\wacserver\share\PowerPoint.pptx]
    Starting WriteStreamToDiskCache
    Creating channel to DiskCache: http://wacserver:809/diskcache/DiskCache.svc
    MachineTransfer [SourceMachine:wacserver, SourceMachineVersion:15.0.4543.1000, TargetMachine:wacserver, TargetMachineVersion:15.0.4551.1011, Method:DiskCacheService.PutCacheData]
    PutCacheData: [167F6AC792AE9B53BEA7CD135A35C18F0710CF5916C49DD5804C9E29CF9149CA55D1C8D1AD526B45B91801E1502B2BCD, d1c8d155-52ad-456b-b918-01e1502b2bcd, 50758, wacserver]
    PutCacheData: Writing to C:\ProgramData\Microsoft\OfficeWebApps\Working\d\1CA\167F6AC792AE9B53BEA7CD135A35C18F0710CF5916C49DD5804C9E29CF9149CA55D1C8D1AD526B45B91801E1502B2BCD
    Not enough disk space to write.  Sleeping once.
    Not enough disk space to write.  Giving up.
    PutCacheData Response: [False]
         The cache folder has enough disk size and PowerPoint.pptx file is just 30 KB.
         It repeats this flow 3 times (as for the first HTTP requests).
         During the 2 minutes test (until it fails) there are 14 traces like:
    Failed to create process object for pid 7780 with exception System.ArgumentException: Process with an Id of 7780 is not running.     at System.Diagnostics.Process.GetProcessById(Int32 processId)     at Microsoft.Office.Web.Common.RequestPipe.ProcessManager.TryGetProcessObject(Int32
    pid).
         We have tried a number of things but none has worked. The farm has just one server and it says ist's unhealthy. We have Windows Server 2008 R2 SP1. We have read some ways to fix the health, like HTTP Activation feature, but it only works
    for Windows Server 2012 as fas as we know.
         Has anybody experienced something like this or have a posible solution? Office Web Apps Server should be so easy to deploy but we have spent a lot of time with this.
         Thank you very much. Your help will be very appreciated.
         Kind regards.

    Hi John,
    According to your description, my understanding is that you cannot view the PowerPoint files in Office Web Apps in SharePoint.
    Was there any error when you view the PowerPoint files in Office Web Apps?
    You can troubleshoot the error following the link below:
    http://technet.microsoft.com/en-us/library/ff431687.aspx#tshoot
    I also recommend to re-configure SharePoint to use the Office Web Apps Server to see if the issue still occurs.
    http://technet.microsoft.com/en-us/library/ff431687.aspx#ConfigureMain
    Best regards.
    Thanks
    Victoria Xia
    TechNet Community Support

  • Possible to have two login configs in same web app?

    Sorry for not having tried this first, my server and webapp are in a state
    of flux at this moment, but I wanted to see what the consensus is out there,
    not just whether I can or cannot make something work quickly.
    If I have two types of things that might be called in my Web App (WAR) in
    different ways (eg, browser accessing via HTTP by users that want to login
    via pretty forms, and SOAP clients that may access functionality through the
    same servlets (but with alternate Servlet Path Info after the servlet name
    in the URL)), is there ANY way I can have multiple login configs, each tied
    to a different security constraint within that web app?
    In other words, with a servlet of /frazzleblitz and security constraints
    like:
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Foo</web-resource-name>
    <url-pattern>/frazzleblitz/doFooBar</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>FoobarBrowserUsers</role-name>
    </auth-constraint>
    </security-constraint>
    and the SOAP constraint (for all users of incoming SOAP requests):
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Foo</web-resource-name>
    <url-pattern>/frazzleblitz/doFooBar</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>FoobarBrowserUsers</role-name>
    </auth-constraint>
    </security-constraint>
    where my frazzleblitz controller knows whether the incoming request is
    browser vs SOAP based by the path info after the servlet name
    Can I associate the first security constraint with a FORM based login
    config, and the second security constraint with a BASIC AUTH login config
    since I could in theory require SOAP clients to send in credentials in a
    HTTP BasicAuth header, but I can't expect a SOAP client to be HTTP
    Redirected to a login form and then to enter the right credentials into a
    user type form and then be redirected back to an app...
    Seems to me the J2EE Security spec is really lacking in the area of
    programmatic authentication (allowing my SOAP code to get credentials out of
    the request envelope and call an API to login myself). Yeah, WebLogic has
    the ServletAuthentication weak() API, but these apps need to be J2EE
    compliant and work across J2EE servers... Anybody know of any improvements
    coming in the J2EE security space to address such functionality needs?
    Thanks in advance
    Mike

    Sorry, hit send accidentally before finishing the second security
    constraint - I've fixed it up below to reflect what I meant...
    "Mike" <[email protected]> wrote in message
    news:[email protected]...
    Sorry for not having tried this first, my server and webapp are in a state
    of flux at this moment, but I wanted to see what the consensus is outthere,
    not just whether I can or cannot make something work quickly.
    If I have two types of things that might be called in my Web App (WAR) in
    different ways (eg, browser accessing via HTTP by users that want to login
    via pretty forms, and SOAP clients that may access functionality throughthe
    same servlets (but with alternate Servlet Path Info after the servlet name
    in the URL)), is there ANY way I can have multiple login configs, eachtied
    to a different security constraint within that web app?
    In other words, with a servlet of /frazzleblitz and security constraints
    like:
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Foo</web-resource-name>
    <url-pattern>/frazzleblitz/doFooBar</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>FoobarBrowserUsers</role-name>
    </auth-constraint>
    </security-constraint>
    and the SOAP constraint (for all users of incoming SOAP requests):
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Bar</web-resource-name>
    <url-pattern>/frazzleblitz/doSOAPRequest</url-pattern>
    </web-resource-collection>
    <auth-constraint>
    <role-name>SOAPUsers</role-name>
    </auth-constraint>
    </security-constraint>
    where my frazzleblitz controller knows whether the incoming request is
    browser vs SOAP based by the path info after the servlet name
    Can I associate the first security constraint with a FORM based login
    config, and the second security constraint with a BASIC AUTH login config
    since I could in theory require SOAP clients to send in credentials in a
    HTTP BasicAuth header, but I can't expect a SOAP client to be HTTP
    Redirected to a login form and then to enter the right credentials into a
    user type form and then be redirected back to an app...
    Seems to me the J2EE Security spec is really lacking in the area of
    programmatic authentication (allowing my SOAP code to get credentials outof
    the request envelope and call an API to login myself). Yeah, WebLogic has
    the ServletAuthentication weak() API, but these apps need to be J2EE
    compliant and work across J2EE servers... Anybody know of anyimprovements
    coming in the J2EE security space to address such functionality needs?
    Thanks in advance
    Mike

  • How do I change the context-root of a web app with a deployment plan?

    I've been trying to figure this out for several hours.
    I'm deploying a .ear file which sets the context root for the single web application it deploys in its application.xml deployment descriptor:
    <application>
    <display-name>MyApp</display-name>
    <module>
    <web>
    <web-uri>MyAppViewControler.war</web-uri>
    <context-root>MyApp</context-root>
    </web>
    </module>
    </application>
    I want to change the context-root from /MyApp to something else when deploying the ear file. It seemed to me that using a deployment plan was the way to do this. But when I use this plan:
    <deployment-plan>
    <application-name>MyApp<application-name>
    <variable-definition>
    <variable>
    <name>NEWCONTEXTROOT</name>
    <value>foobar</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>MyApp</module-name>
    <module-type>ear</module-type>
    <module-descriptor external="false">
    <root-element>application</root-element>
    <uri>META-INF/application.xml</uri>
    <variable-assignment>
    <name>NEWCONTEXTROOT</name>
    <xpath>/application/module/web/context-root</xpath>
    </variable-assignment>
    </module-descriptor>
    </module-override>
    </deployment-plan>
    I get an error:
    weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND
    /bea/user_projects/domains/devod1/nullplan.xml:0: problem: cvc-complex-type.2.4a: Expected element 'web-uri@http://java.sun.com/xml/ns/javaee' instead of 'context-root@http://java.sun.com/xml/ns/javaee' here in element web@http://java.sun.com/xml/ns/javaee:<nullplan.xml>
    I looked at http://e-docs.bea.com/wls/docs103/pdf/deployment.pdf which says:
    "You cannot use a deployment plan to change the context-root in an application.xml
    file. However, if an application is deployed as a library, you can either change the
    context-root through an weblogic-application.xml file or use the deployment plan
    to change the context-root in an weblogic-application.xml file."
    I don't understand what this means. I'm not deploying my application as a library.
    Does anyone know how to change the context-root for an application?
    Any help would be greatly appreciated!

    Hi James,
    I am quite new to Welogic if i am wrong please correct me.I have re-deployed my application (.war) with this Plan.xml
    &lt;?xml version='1.0' encoding='UTF-8'?&gt;
    &lt;deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false"&gt;
    &lt;application-name&gt;BrowserR08.003&lt;/application-name&gt;
    *&lt;variable-definition&gt;*
    * &lt;variable&gt;*
    * &lt;name&gt;CONTEXTROOT&lt;/name&gt;*
    * &lt;value&gt;BrowserWeb/servlet/BrowserServlet&lt;/value&gt;*
    * &lt;/variable&gt;*
    * &lt;/variable-definition&gt;*
    &lt;module-override&gt;
    &lt;module-name&gt;BrowserWeb.war&lt;/module-name&gt;
    &lt;module-type&gt;war&lt;/module-type&gt;
    &lt;module-descriptor external="true"&gt;
    &lt;root-element&gt;weblogic-web-app&lt;/root-element&gt;
    &lt;uri&gt;WEB-INF/weblogic.xml&lt;/uri&gt;
    &lt;hash-code&gt;1231953167814&lt;/hash-code&gt;
    *&lt;variable-assignment&gt;*
    * &lt;name&gt;CONTEXTROOT&lt;/name&gt;*
    * &lt;xpath&gt;/weblogic-web-app/context-root&lt;/xpath&gt;*
    * &lt;operation&gt;add&lt;/operation&gt;*
    * &lt;/variable-assignment&gt;*
    &lt;/module-descriptor&gt;
    &lt;module-descriptor external="false"&gt;
    &lt;root-element&gt;web-app&lt;/root-element&gt;
    &lt;uri&gt;WEB-INF/web.xml&lt;/uri&gt;
    &lt;/module-descriptor&gt;
    &lt;module-descriptor external="true"&gt;
    &lt;root-element&gt;wldf-resource&lt;/root-element&gt;
    &lt;uri&gt;META-INF/weblogic-diagnostics.xml&lt;/uri&gt;
    &lt;/module-descriptor&gt;
    &lt;/module-override&gt;
    &lt;config-root&gt;/export/home1/tecapp/BrowserR08.003/plan&lt;/config-root&gt;
    &lt;/deployment-plan&gt;
    I do not know wether i will require the other module descriptor definition in this Plzn.xml. Now when I go to following link.
    Deployments --&gt; MyApp --&gt; Testing
    It gives me following url as a test page:
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet
    as soon as i click on to the above link it redirects me to following.
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet/servlet/BrowserServlet
    Same if i remove these context-root part my normal Testing menu shows me following link as my webapp access path
    http://localhost:7001/BrowserWeb &lt;-- My war file name is BrowserWeb.war so it is default name of my deployed application if i am not wrong
    and as soon as i click on above link it redirects me to the following one.
    http://localhost:7001/BrowserWeb/servlet/BrowserServlet
    It means application server know that my full web access page is with '*servlet/BrowserServlet*' because its adding it in both the cases.
    What I want is a constant URL whcih does not change?
    Hope this helps :)

  • Web Apps FAQ

    Hello,
    I am working on knowledge base entries for developing Web Applications with Sun ONE Studio. I would be interested in whether any of the following are helpful.
    Also, are there other entries you think should be added? Other comments? Corrections?
    Thanks
    Web Apps FAQ
    Creating a Web Application
    Q: Where do I put my JSP files in my web module.
    A: JSP files can go into the web module's document base directory or any
    of its subdirectories except for the subdirectories under WEB-INF. For example,
    the following is correct:
    correctWebModStructure
    + login.jsp
    ++ JSP_files
    +++ shop.jsp
    + WEB-INF
    ++ Classes
    ++ lib
    ++ web.xml
    The following is incorrect:
    incorrectWebModStructure
    + WEB-INF
    ++ login.jsp     
    ++ JSP_files
    +++ shop.jsp     
    ++ Classes
    ++ lib
    ++ web.xml
    Note that with the incorrect structure, the JSP files will compile but
    they will not run on a server.
    Q: Where should I put my servlet source and binary files when I create
    and execute a web module from the IDE?
    A: Your compiled classes must go in the appropriate package directory
    under <web mod document root>/WEB-INF/Classes. The easiest place to
    put the source code is in the same directory as the compiled class. To
    put your source code in a different directory, see "Can I put my source code in
    a different directory from WEB-INF/classes?"
    Note that when a class is imported by another class or by a JSP file, the
    class MUST be in a named namespace (package).
    Q: Where do I put my libraries (JAR files) in a web module?
    A: You can put the libraries in one of several places:
    o If the JAR file will be used only by the module, put it in the
    WEB-INF/lib directory.
    o If the JAR file will be shared by multiple web modules look at the server's
    documentation to find out how to make the library available across web
    modules.
    - If you are using the Sun One Application server, you can either copy
    the JAR into the <instance_dir>/lib directory (such as
         <AppServerInstallDir>\domains\domain1\server1\lib) or edit the
         classpath-suffix attribute of the java-config element in the
         server.xml file. For details about server.xml, see the Sun ONE Application
         Server Administrator�s Configuration File Reference. You must
         restart the server.
    - If you are using the internal Tomcat server, put the JAR file into one of
    the following directories:
    <ide-install-dir>/jwsdp/lib/
    <ide-install-dir>/jwsdp/common/classes
    <ide-install-dir>/jwsdp/common/lib/
    <ide-install-dir>jwsdp/shared/classes
    <ide-install-dir>/jwsdp/shared/lib/
    Note that for compilation, a JAR file must either be mounted as as an
              archive file or the JAR file must be put into <ide-install-dir>\lib\ext.
    When you add a JAR file to WEB-INF/lib directory tree, the IDE mounts
              the JAR file for you automatically.
    Q: Can I put my source code in a different directory from WEB-INF/classes?
    A: Yes. For example, say you have a directory structure as follows:
    myWebApp
    + WEB-INF
    ++ Classes
    +++ myPkg
    + src
    ++ myPkg
    1. In the Filesystems tab, mount myWebApp and separately mount src.
    The Explorer should look like this:
    <path>/myWebApp
    <path>/myWebApp: /WEB-INF/classes <-IDE automatically mounts this
    <path>/src
    2. Open Tools > Options > Building > External Compilation and select this Target:
    <path>/myWebApp: /WEB-INF/classes
    (By default, this setting is project wide, if you click the >> column, you
    can set it at the user or default level.)
    3. Whenever you create a Java file under /WEB-INF/classes, the IDE automatically
    adds a servlet entry and a mapping in the web.xml. Because you are putting
    your source elsewhere, you will have to enter these entries manually, or do
    the following.
    1. Right-click the web.xml node, and choose Properties.
    2. In the Deployment panel of the web.xml properties window,
    click the ellipses (...) in the Servlets value field to display
    the Servlets Property editor.
    In Servlets Property editor, click Add to display the Add Servlet dialog box.
    In the Add Servlet dialog box, type, or browse for, the servlet class name.
    Type in the name by which you want to identify the servlet.
    3. Click the Edit button for Mappings and add the mapping for the servlet.
    4. Click OK to close the Add Servlet dialog box, then click OK to close
    the Servlets property editor.
    Note: If you don't add the web.xml entries, you might get an error like the
    following:
    "The requested object does not exist on this server.
    The link you followed is either outdated, inaccurate,
    or the server has been instructed not to let you have it.
    Please inform the site administrator of the referring page."
    Q: Why do I get invalid package name when I try to add a package to my
    web module.
    You have two options for creating packages in a web module.
    1. Create a package in a subdirectory of WEB-INF/classes.
    2. Create a package in a directory that is not in the WEB-INF tree and
    put the compiled class in the WEB-INF tree. For example, if you have the
    following directory structure, set the compilation target to WEB-INF/classes.
    myWebMod
    + src
    ++ pkg1
    + WEB-INF
    ++ classes
    +++ pkg1
    ++ lib
    In either case, the WEB-INF/classes directory must be mounted. The IDE
    does this automatically when you create a web module or turn a directory
    into a web module.
    To set the compilation target, choose Tools > Options > Building >
    External Compilation and select the target. In this example, you would
    select:
    <path>/myWebMod: /WEB-INF/classes
    Do not use a directory structure like this:
    myWebMod
    + WEB-INF
    ++ src << wrong
    ++ classes
    You can alternatively keep your source code in the appropriate package
    directory under WEB-INF/classes.
    Editing JSP Files
    Q: JSP code completion does not work now that I use the Jakarta recommended
    directory structure and use Ant to build and deploy my web applications? Can
    I fix this?
    To make code completion work, you must mount the following libraries and
    directories in the Filesystems tab of the Explorer window. Mounting a parent
    directory does not work.
    * <working-directory>/src
    * <working-directory>/build
    * Every .jar file that is copied by the build script to
              <working-directory>/build/WEB-INF/lib. (The IDE automatically mounts
                   all the jar files in WEB-INF/lib when you mount working-directory/build.)
    * Any other libraries that are used by the web application, such as
              libraries that have been deployed to the server.
    Deploying a Web Application
    Q: Can I change the URL that is used to execute a JSP page? For example,
    instead of http://localhost/welcome.jsp, can I have the URL be
    http://localhost/shopping/welcome.jsp?
    A: Yes, right-click on the WEB-INF and choose Properties from the contextual
    menu. In the Properties window, type /<name>. For example, type
    /shopping
    Note that youu can use servlet mappings in the web.xml file to control the
    mappings of URLs to servlets.
    Q: Is there a way to copy the compiled code to the server for testing
    without having to create a WAR file?
    A: Yes, this is the default action when you right-click the WEB-INF
    node and choose Deploy from the contextual menu.
    With Internal and External Tomcat installations, the deploy action causes
    the IDE to change the server's configuration file to add a context entry,
    which points to the document root of your working version of the web
    application. For example
    /myApp -> C:\My Working Directory\myApp
    When you deploy to the Sun ONE application server using the IDE's Deploy
    action, the IDE copies the web application's directory structure to
    the server's <instance>/applications/j2ee-modules directory.
    Q: How do I create a WAR file and deploy the WAR file onto different servers.
    A: To create a WAR file, right click the WEB-INF node and choose Export WAR
    file. See the online help for details about adding and filtering out
    components.
    Look at the server's documentation to find out how to deploy the WAR file
    to the server. Here is an example of deploying a WAR file to the Sun ONE
    Application Server 7:
    asadmin deploy user myusername password mypassword \
    -host localhost port 4848 type web contextroot /myApp instance server1 \
    c:\apps\myapp.war
    Note that when you deploy to a server that is registered with the IDE,
    you do not need to create a WAR file. Instead, you can right-click on the
    WEB-INF node and choose Deploy.
    Compiling a Web Application
    Q: Why do I get compiler errors when I compile from the IDE even though
    I don't get errors when I compile from the command line?
    As the IDE's classpath is derived from the mounted filesystems, the problem
    is most likely caused by not mounting the necessary filesystems. For the
    following web app, you must mount in the Explorer AWebApp, WEB-INF/classes
    (this directory is mounted automatically when you create a web app or
    turn a directory into a web app), and every JAR file in the WEB-INF/lib
    directory (which is also done automatically). Note that all classes and
    JAR files that the application needs must be in AWebApp/WEB-INF or
    AWebApp/lib or the server's location for shared libraries and classes.
    Otherwise, the module may compile but it won't run in the server.
    AllMyWebApps
    + AWebApp
    ++ WEB-INF
    +++ classes
    +++ lib
    ++++ a.jar
    ++++ b.jar
    Q: Why do I get a "cannot resolve symbol" compiler error message for my JSP.
    A: Check the import statements in your JSP file. The import statement must
    specify the fully qualified class name (package name plus class), and the
    class must be in a namespace. The namespace restriction is because the Javac
    bytecode compiler in J2SE 1.4.0 is more strict than in previous
    versions in enforcing compliance with the Java Language Specification,
    and thus rejects import statements that import a type from an unnamed namespace.
    Valid import statement:
    <%@page import="org.alpha.beta.MyBean" %>
    Also, make sure your compiled classes are in a subfolder of
    <web-module>/WEB-INF/classes, such as, for the above bean,
    <web-module>/WEB-INF/classes/org/alpha/beta/MyBean.class.
    Note that you will also get this error if you have created a link under
    WEB-INF/classes to a package in another directory. Your package must
    physically exist in the WEB-INF/classes directory.          
    Q: Why do I get " '.' expected" when my JSP is compiled.
    The Javac bytecode compiler in J2SE 1.4.0 is more strict than in previous
    versions in enforcing compliance with the Java Language Specification, and
    thus rejects import statements that import a type from an unnamed namespace.
    For example, if you have an import statement like the following, the compiler
    expects the imported class to be in a package. Therefore, the compiler
    assumes that MyBean is a package and expects the package name to be followed
    by a period (.) and either a subpackage or a class. To resolve the problem,
    put the bean in a package.
    INVALID IMPORT STATEMENT:
    <%@page import="MyBean" %>
    VALID IMPORT STATEMENT
    <%@page import="MyPackage.MyBean" %>
    Q: Why do I get a package does not exist error message when the package exists?
    A: The problem might be that you have not mounted the web module at the
    correct point. You must mount the directory that is directly above the WEB-INF
    directory. For example, if you have the following directory structure
    you must mount the webApp1 filesystem. When you specifically mount
    webApp1, the IDE recognizes the filesystem as a web module. The IDE
    automatically mounts WEB-INF/classes, so that it is in the IDE's classpath,
    and provides the execute and deploy actions when you right-click on the
    WEB-INF node:
    allMyWebApps
    + webApp1
    ++ WEB-INF
    +++ Classes
    ++++ myPkg
    You can also get this error message when you do not put your Classes directory
    under WEB-INF. For example, if you put the Classes directory in web-info, you
    will get this error message.
    You will get this error if you have created a link under WEB-INF/classes
    to a package in another directory. Your package must physically exist in
    the WEB-INF/classes directory.                    
    Running Web Applications
    Q: Why do I get the 404 error message "The requested resource is not available"?
    Why do I get the error message "The requested object does not exist on
    this server"?
    A: If you get either of these errors on a servlet, check the servlet's entry
    in the web.xml. The entry should be similar to the following:
    <servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>org.alpha.beta.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
    The name can be any name as long as it is the same in both mappings.
    The class must be the fully qualified class name. The pattern
    must be a pattern that matches the URI that invokes the servlet. In
    this case, the pattern matches the URI http://localhost:8081/MyServlet.
    Q: Why do I get a Generated Servlet error "Class not found."
    A: This error can occur if the class is not in a package. To resolve the
    problem, put the class in a package.
    If the class is in a package and you still get this message,
    check the import statements in your JSP file. The import statement must
    specify the fully qualified class name (package name plus class).
    For example:
    <%@page "org.alpha.beta.CustomerBean" %>
    Q: Why do I get the error message "Unable to load class" when my JSP calls
    a class from a library?
    This message usually appears because the library's JAR file is not in the
    WEB-INF/lib directory. The server expects all of the web app's JAR files
    to either be in the WEB-INF/lib directory or in the server's
    shared library directory.
    For more information, search for the "File Location in a Web Module" topic
    in the online help.
    Q: Why do I get an error message during JSP compilation that a tld file is not
    found when the file is there?
    A: The problem might be that you have not put the tld file in the correct
    place. It should go in the WEB-INF directory.
    This problem also happens if have not mounted the web module at the
    correct point.
    You must mount the directory that is directly above the WEB-INF directory. For
    example, if you have the following directory structure you must mount the
    myWebApp1 filesystem. When you specifically mount webApp1, the IDE recognizes
    the filesystem as a web module. The IDE automatically mounts WEB-INF/classes,
    which in turn adds the path to the IDE's classpath and provides the execute
    and deploy actions when you right-click on the WEB-INF node:
    allMyWebApps
    + webApp1
    ++ WEB-INF
    +++ Classes
    ++++ myPkg
    Another cause of the problem could be that the uri in your taglib statement
    is incorrect. For example, this statement is wrong:
                        <%@ taglib uri="struts-html.tld" prefix="html" %> <- Incorrect
    Instead, it should be:
                        <%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %> <- Correct
    Q: Why do I get a java.lang.ClassNotFoundException when I run my JSP file?
    Everything compiles successfully and the source editor does JSP code completion
    for the class. However, when I execute, the runtime system can't find the new
    classes.
    A: There are several causes of this error. Here are some things to check.
    1. If the class is in a library, make sure the JAR file is in the
    WEB-INF/lib directory or the server's directory for shared libraries.
    Otherwise, make sure the class is in a package under the WEB-INF/Classes
    directory.
    When compiling, the IDE builds the classpath from the mounted filesystems.
    However, when you use the deploy action, the IDE only deploys the classes,
    libraries, and files that are stored in the mounted web module.
    2. Make sure all usebean statements use a fully qualified name for
    the class name.
    WRONG:
    <jsp:useBean id="myBean" class="MyBean" scope="request" />
    CORRECT:
    <jsp:useBean id="myBean" class="org.alpha.beta.MyBean" scope="request" />
    Q. Why am I getting a 500 Internal Server Error? My application compiled but
    when I try to run it, I get an Internal Server Error.
    A: There are several reasons for internal server errors. The "root cause" or
    the "Exception" information can help to narrow in on the problem. Here are
    some common causes:
    a) One common reason is that the compiled classes are not in the right directory
    or a required library (JAR file) is not in the WEB-INF/lib directory.
    When you compile, the IDE uses the classpath to find the resources. However,
    when you deploy an application, the application must strictly follow the
    web module directory structure:
    <document root directory>
    + JSP, HTML and other public files
    + WEB-INF
    ++ web.xml
    ++ <tld files>
    ++ classes
    +++ <pkg 1>
    +++ <pkg 2>
    ++ lib
    +++ <.jar>
    For more information, search for the "File Location in a Web Module" topic
    in the online help.
    b) If you are connecting to a database, make sure the driver is put in the
    server's shared library directory or common library directory.
    c) An error occurs when the server compiles the JSP into a servlet. For example,
    the import or usebean statement is not using the fully qualified class
    name for the bean. The following statements show an incorrect and a correct
    import statement.
    import="MyBean" << wrong
    import="com.myCompany.MyBean" << correct
    In this case, the "Exception" or "Root Cause" might be "Class <bean name> not
    found in import."
    Note that a bean must always be in a package. A bean cannot be put into the
    WEB-INF/classes directory. Instead, it must be in a WEB-INF/classes
    subdirectory.
    Accessing Databases from Web Applications
    Q: I put my database driver in WEB-INF/lib but I still can't access the
    database. What do I do?
    A: If your application performs queries or run statements through JDBC, then
    putting the driver in WEB-INF is sufficient. However, if you are connecting to
    the database through the server, you need to put the driver in the
    server's shared library directory or the server's common library directory.
    You must also set up a connection pool in the server.xml file. See the
    documentation for your server on the specifics, as the details vary for
    each server.

    Hello,
    I am working on knowledge base entries for developing Web Applications with Sun ONE Studio. I would be interested in whether any of the following are helpful.
    Also, are there other entries you think should be added? Other comments? Corrections?
    Thanks
    Web Apps FAQ
    Creating a Web Application
    Q: Where do I put my JSP files in my web module.
    A: JSP files can go into the web module's document base directory or any
    of its subdirectories except for the subdirectories under WEB-INF. For example,
    the following is correct:
    correctWebModStructure
    + login.jsp
    ++ JSP_files
    +++ shop.jsp
    + WEB-INF
    ++ Classes
    ++ lib
    ++ web.xml
    The following is incorrect:
    incorrectWebModStructure
    + WEB-INF
    ++ login.jsp     
    ++ JSP_files
    +++ shop.jsp     
    ++ Classes
    ++ lib
    ++ web.xml
    Note that with the incorrect structure, the JSP files will compile but
    they will not run on a server.
    Q: Where should I put my servlet source and binary files when I create
    and execute a web module from the IDE?
    A: Your compiled classes must go in the appropriate package directory
    under <web mod document root>/WEB-INF/Classes. The easiest place to
    put the source code is in the same directory as the compiled class. To
    put your source code in a different directory, see "Can I put my source code in
    a different directory from WEB-INF/classes?"
    Note that when a class is imported by another class or by a JSP file, the
    class MUST be in a named namespace (package).
    Q: Where do I put my libraries (JAR files) in a web module?
    A: You can put the libraries in one of several places:
    o If the JAR file will be used only by the module, put it in the
    WEB-INF/lib directory.
    o If the JAR file will be shared by multiple web modules look at the server's
    documentation to find out how to make the library available across web
    modules.
    - If you are using the Sun One Application server, you can either copy
    the JAR into the <instance_dir>/lib directory (such as
         <AppServerInstallDir>\domains\domain1\server1\lib) or edit the
         classpath-suffix attribute of the java-config element in the
         server.xml file. For details about server.xml, see the Sun ONE Application
         Server Administrator�s Configuration File Reference. You must
         restart the server.
    - If you are using the internal Tomcat server, put the JAR file into one of
    the following directories:
    <ide-install-dir>/jwsdp/lib/
    <ide-install-dir>/jwsdp/common/classes
    <ide-install-dir>/jwsdp/common/lib/
    <ide-install-dir>jwsdp/shared/classes
    <ide-install-dir>/jwsdp/shared/lib/
    Note that for compilation, a JAR file must either be mounted as as an
              archive file or the JAR file must be put into <ide-install-dir>\lib\ext.
    When you add a JAR file to WEB-INF/lib directory tree, the IDE mounts
              the JAR file for you automatically.
    Q: Can I put my source code in a different directory from WEB-INF/classes?
    A: Yes. For example, say you have a directory structure as follows:
    myWebApp
    + WEB-INF
    ++ Classes
    +++ myPkg
    + src
    ++ myPkg
    1. In the Filesystems tab, mount myWebApp and separately mount src.
    The Explorer should look like this:
    <path>/myWebApp
    <path>/myWebApp: /WEB-INF/classes <-IDE automatically mounts this
    <path>/src
    2. Open Tools > Options > Building > External Compilation and select this Target:
    <path>/myWebApp: /WEB-INF/classes
    (By default, this setting is project wide, if you click the >> column, you
    can set it at the user or default level.)
    3. Whenever you create a Java file under /WEB-INF/classes, the IDE automatically
    adds a servlet entry and a mapping in the web.xml. Because you are putting
    your source elsewhere, you will have to enter these entries manually, or do
    the following.
    1. Right-click the web.xml node, and choose Properties.
    2. In the Deployment panel of the web.xml properties window,
    click the ellipses (...) in the Servlets value field to display
    the Servlets Property editor.
    In Servlets Property editor, click Add to display the Add Servlet dialog box.
    In the Add Servlet dialog box, type, or browse for, the servlet class name.
    Type in the name by which you want to identify the servlet.
    3. Click the Edit button for Mappings and add the mapping for the servlet.
    4. Click OK to close the Add Servlet dialog box, then click OK to close
    the Servlets property editor.
    Note: If you don't add the web.xml entries, you might get an error like the
    following:
    "The requested object does not exist on this server.
    The link you followed is either outdated, inaccurate,
    or the server has been instructed not to let you have it.
    Please inform the site administrator of the referring page."
    Q: Why do I get invalid package name when I try to add a package to my
    web module.
    You have two options for creating packages in a web module.
    1. Create a package in a subdirectory of WEB-INF/classes.
    2. Create a package in a directory that is not in the WEB-INF tree and
    put the compiled class in the WEB-INF tree. For example, if you have the
    following directory structure, set the compilation target to WEB-INF/classes.
    myWebMod
    + src
    ++ pkg1
    + WEB-INF
    ++ classes
    +++ pkg1
    ++ lib
    In either case, the WEB-INF/classes directory must be mounted. The IDE
    does this automatically when you create a web module or turn a directory
    into a web module.
    To set the compilation target, choose Tools > Options > Building >
    External Compilation and select the target. In this example, you would
    select:
    <path>/myWebMod: /WEB-INF/classes
    Do not use a directory structure like this:
    myWebMod
    + WEB-INF
    ++ src << wrong
    ++ classes
    You can alternatively keep your source code in the appropriate package
    directory under WEB-INF/classes.
    Editing JSP Files
    Q: JSP code completion does not work now that I use the Jakarta recommended
    directory structure and use Ant to build and deploy my web applications? Can
    I fix this?
    To make code completion work, you must mount the following libraries and
    directories in the Filesystems tab of the Explorer window. Mounting a parent
    directory does not work.
    * <working-directory>/src
    * <working-directory>/build
    * Every .jar file that is copied by the build script to
              <working-directory>/build/WEB-INF/lib. (The IDE automatically mounts
                   all the jar files in WEB-INF/lib when you mount working-directory/build.)
    * Any other libraries that are used by the web application, such as
              libraries that have been deployed to the server.
    Deploying a Web Application
    Q: Can I change the URL that is used to execute a JSP page? For example,
    instead of http://localhost/welcome.jsp, can I have the URL be
    http://localhost/shopping/welcome.jsp?
    A: Yes, right-click on the WEB-INF and choose Properties from the contextual
    menu. In the Properties window, type /<name>. For example, type
    /shopping
    Note that youu can use servlet mappings in the web.xml file to control the
    mappings of URLs to servlets.
    Q: Is there a way to copy the compiled code to the server for testing
    without having to create a WAR file?
    A: Yes, this is the default action when you right-click the WEB-INF
    node and choose Deploy from the contextual menu.
    With Internal and External Tomcat installations, the deploy action causes
    the IDE to change the server's configuration file to add a context entry,
    which points to the document root of your working version of the web
    application. For example
    /myApp -> C:\My Working Directory\myApp
    When you deploy to the Sun ONE application server using the IDE's Deploy
    action, the IDE copies the web application's directory structure to
    the server's <instance>/applications/j2ee-modules directory.
    Q: How do I create a WAR file and deploy the WAR file onto different servers.
    A: To create a WAR file, right click the WEB-INF node and choose Export WAR
    file. See the online help for details about adding and filtering out
    components.
    Look at the server's documentation to find out how to deploy the WAR file
    to the server. Here is an example of deploying a WAR file to the Sun ONE
    Application Server 7:
    asadmin deploy user myusername password mypassword \
    -host localhost port 4848 type web contextroot /myApp instance server1 \
    c:\apps\myapp.war
    Note that when you deploy to a server that is registered with the IDE,
    you do not need to create a WAR file. Instead, you can right-click on the
    WEB-INF node and choose Deploy.
    Compiling a Web Application
    Q: Why do I get compiler errors when I compile from the IDE even though
    I don't get errors when I compile from the command line?
    As the IDE's classpath is derived from the mounted filesystems, the problem
    is most likely caused by not mounting the necessary filesystems. For the
    following web app, you must mount in the Explorer AWebApp, WEB-INF/classes
    (this directory is mounted automatically when you create a web app or
    turn a directory into a web app), and every JAR file in the WEB-INF/lib
    directory (which is also done automatically). Note that all classes and
    JAR files that the application needs must be in AWebApp/WEB-INF or
    AWebApp/lib or the server's location for shared libraries and classes.
    Otherwise, the module may compile but it won't run in the server.
    AllMyWebApps
    + AWebApp
    ++ WEB-INF
    +++ classes
    +++ lib
    ++++ a.jar
    ++++ b.jar
    Q: Why do I get a "cannot resolve symbol" compiler error message for my JSP.
    A: Check the import statements in your JSP file. The import statement must
    specify the fully qualified class name (package name plus class), and the
    class must be in a namespace. The namespace restriction is because the Javac
    bytecode compiler in J2SE 1.4.0 is more strict than in previous
    versions in enforcing compliance with the Java Language Specification,
    and thus rejects import statements that import a type from an unnamed namespace.
    Valid import statement:
    <%@page import="org.alpha.beta.MyBean" %>
    Also, make sure your compiled classes are in a subfolder of
    <web-module>/WEB-INF/classes, such as, for the above bean,
    <web-module>/WEB-INF/classes/org/alpha/beta/MyBean.class.
    Note that you will also get this error if you have created a link under
    WEB-INF/classes to a package in another directory. Your package must
    physically exist in the WEB-INF/classes directory.          
    Q: Why do I get " '.' expected" when my JSP is compiled.
    The Javac bytecode compiler in J2SE 1.4.0 is more strict than in previous
    versions in enforcing compliance with the Java Language Specification, and
    thus rejects import statements that import a type from an unnamed namespace.
    For example, if you have an import statement like the following, the compiler
    expects the imported class to be in a package. Therefore, the compiler
    assumes that MyBean is a package and expects the package name to be followed
    by a period (.) and either a subpackage or a class. To resolve the problem,
    put the bean in a package.
    INVALID IMPORT STATEMENT:
    <%@page import="MyBean" %>
    VALID IMPORT STATEMENT
    <%@page import="MyPackage.MyBean" %>
    Q: Why do I get a package does not exist error message when the package exists?
    A: The problem might be that you have not mounted the web module at the
    correct point. You must mount the directory that is directly above the WEB-INF
    directory. For example, if you have the following directory structure
    you must mount the webApp1 filesystem. When you specifically mount
    webApp1, the IDE recognizes the filesystem as a web module. The IDE
    automatically mounts WEB-INF/classes, so that it is in the IDE's classpath,
    and provides the execute and deploy actions when you right-click on the
    WEB-INF node:
    allMyWebApps
    + webApp1
    ++ WEB-INF
    +++ Classes
    ++++ myPkg
    You can also get this error message when you do not put your Classes directory
    under WEB-INF. For example, if you put the Classes directory in web-info, you
    will get this error message.
    You will get this error if you have created a link under WEB-INF/classes
    to a package in another directory. Your package must physically exist in
    the WEB-INF/classes directory.                    
    Running Web Applications
    Q: Why do I get the 404 error message "The requested resource is not available"?
    Why do I get the error message "The requested object does not exist on
    this server"?
    A: If you get either of these errors on a servlet, check the servlet's entry
    in the web.xml. The entry should be similar to the following:
    <servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>org.alpha.beta.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
    The name can be any name as long as it is the same in both mappings.
    The class must be the fully qualified class name. The pattern
    must be a pattern that matches the URI that invokes the servlet. In
    this case, the pattern matches the URI http://localhost:8081/MyServlet.
    Q: Why do I get a Generated Servlet error "Class not found."
    A: This error can occur if the class is not in a package. To resolve the
    problem, put the class in a package.
    If the class is in a package and you still get this message,
    check the import statements in your JSP file. The import statement must
    specify the fully qualified class name (package name plus class).
    For example:
    <%@page "org.alpha.beta.CustomerBean" %>
    Q: Why do I get the error message "Unable to load class" when my JSP calls
    a class from a library?
    This message usually appears because the library's JAR file is not in the
    WEB-INF/lib directory. The server expects all of the web app's JAR files
    to either be in the WEB-INF/lib directory or in the server's
    shared library directory.
    For more information, search for the "File Location in a Web Module" topic
    in the online help.
    Q: Why do I get an error message during JSP compilation that a tld file is not
    found when the file is there?
    A: The problem might be that you have not put the tld file in the correct
    place. It should go in the WEB-INF directory.
    This problem also happens if have not mounted the web module at the
    correct point.
    You must mount the directory that is directly above the WEB-INF directory. For
    example, if you have the following directory structure you must mount the
    myWebApp1 filesystem. When you specifically mount webApp1, the IDE recognizes
    the filesystem as a web module. The IDE automatically mounts WEB-INF/classes,
    which in turn adds the path to the IDE's classpath and provides the execute
    and deploy actions when you right-click on the WEB-INF node:
    allMyWebApps
    + webApp1
    ++ WEB-INF
    +++ Classes
    ++++ myPkg
    Another cause of the problem could be that the uri in your taglib statement
    is incorrect. For example, this statement is wrong:
                        <%@ taglib uri="struts-html.tld" prefix="html" %> <- Incorrect
    Instead, it should be:
                        <%@ taglib uri="WEB-INF/struts-html.tld" prefix="html" %> <- Correct
    Q: Why do I get a java.lang.ClassNotFoundException when I run my JSP file?
    Everything compiles successfully and the source editor does JSP code completion
    for the class. However, when I execute, the runtime system can't find the new
    classes.
    A: There are several causes of this error. Here are some things to check.
    1. If the class is in a library, make sure the JAR file is in the
    WEB-INF/lib directory or the server's directory for shared libraries.
    Otherwise, make sure the class is in a package under the WEB-INF/Classes
    directory.
    When compiling, the IDE builds the classpath from the mounted filesystems.
    However, when you use the deploy action, the IDE only deploys the classes,
    libraries, and files that are stored in the mounted web module.
    2. Make sure all usebean statements use a fully qualified name for
    the class name.
    WRONG:
    <jsp:useBean id="myBean" class="MyBean" scope="request" />
    CORRECT:
    <jsp:useBean id="myBean" class="org.alpha.beta.MyBean" scope="request" />
    Q. Why am I getting a 500 Internal Server Error? My application compiled but
    when I try to run it, I get an Internal Server Error.
    A: There are several reasons for internal server errors. The "root cause" or
    the "Exception" information can help to narrow in on the problem. Here are
    some common causes:
    a) One common reason is that the compiled classes are not in the right directory
    or a required library (JAR file) is not in the WEB-INF/lib directory.
    When you compile, the IDE uses the classpath to find the resources. However,
    when you deploy an application, the application must strictly follow the
    web module directory structure:
    <document root directory>
    + JSP, HTML and other public files
    + WEB-INF
    ++ web.xml
    ++ <tld files>
    ++ classes
    +++ <pkg 1>
    +++ <pkg 2>
    ++ lib
    +++ <.jar>
    For more information, search for the "File Location in a Web Module" topic
    in the online help.
    b) If you are connecting to a database, make sure the driver is put in the
    server's shared library directory or common library directory.
    c) An error occurs when the server compiles the JSP into a servlet. For example,
    the import or usebean statement is not using the fully qualified class
    name for the bean. The following statements show an incorrect and a correct
    import statement.
    import="MyBean" << wrong
    import="com.myCompany.MyBean" << correct
    In this case, the "Exception" or "Root Cause" might be "Class <bean name> not
    found in import."
    Note that a bean must always be in a package. A bean cannot be put into the
    WEB-INF/classes directory. Instead, it must be in a WEB-INF/classes
    subdirectory.
    Accessing Databases from Web Applications
    Q: I put my database driver in WEB-INF/lib but I still can't access the
    database. What do I do?
    A: If your application performs queries or run statements through JDBC, then
    putting the driver in WEB-INF is sufficient. However, if you are connecting to
    the database through the server, you need to put the driver in the
    server's shared library directory or the server's common library directory.
    You must also set up a connection pool in the server.xml file. See the
    documentation for your server on the specifics, as the details vary for
    each server.

  • SharePoint 2013 Office Web App issue

    We met an issue on Office Web App with SharePoint 2013.
    Error message on the page:
    Sorry, there was a problem and we can't open this document. If this happens again, try opening the Microsoft Word.
    There is no related log in Windows Event viewer.
    In SharePoint ULS log, related message as below:
    08/12/2014 06:42:45.49 w3wp.exe (0x2C90) 0x2FE0 SharePoint Foundation Claims Authentication ahds8 Unexpected SPJsonWebSecurityBaseTokenHandler: Issuer name in token '00000003-0000-0ff1-ce00-000000000000@testrealm' doesn't match any of the registered issuer names for trusted sts 'collaboration metadata'. 7ba9aedb-4658-4a32-aaaa-20bcd0d52be6
    08/12/2014 06:42:45.49 w3wp.exe (0x2C90) 0x2FE0 SharePoint Foundation Monitoring b4ly Medium Leaving Monitored Scope (Application Authentication Pipeline). Execution Time=7,5254676222816 7ba9aedb-4658-4a32-aaaa-20bcd0d52be6
    08/12/2014 06:42:45.49 w3wp.exe (0x2C90) 0x2FE0 SharePoint Foundation Application Authentication ajezu Unexpected SPApplicationAuthenticationModule: Failed to authenticate request, unknown error. Exception details: System.IdentityModel.Tokens.SecurityTokenException: Issuer name is not registered at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityBaseTokenHandler.ValidateTokenIssuer(X509SecurityToken signingKey, String tokenIssuer) at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityBaseTokenHandler.ValidateToken(SecurityToken token) at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityTokenHandler.ValidateToken(SecurityToken token) at Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModule.TryExtractAndValidateToken(HttpContext httpContext, SPIncomingTokenContext& tokenContext) at Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModule.ConstructIC... 7ba9aedb-4658-4a32-aaaa-20bcd0d52be6
    08/12/2014 06:42:45.49* w3wp.exe (0x2C90) 0x2FE0 SharePoint Foundation Application Authentication ajezu Unexpected ...laimsPrincipalAndSetThreadIdentity(HttpApplication httpApplication, HttpContext httpContext, SPFederationAuthenticationModule fam) at Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModule.AuthenticateRequest(Object sender, EventArgs e) 7ba9aedb-4658-4a32-aaaa-20bcd0d52be6
    08/12/2014 06:42:45.49 w3wp.exe (0x2C90) 0x2FE0 SharePoint Foundation General 8nca Medium Application error when access /sites/111/_vti_bin/wopi.ashx, Error=Issuer name is not registered at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityBaseTokenHandler.ValidateTokenIssuer(X509SecurityToken signingKey, String tokenIssuer) at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityBaseTokenHandler.ValidateToken(SecurityToken token) at Microsoft.SharePoint.IdentityModel.SPJsonWebSecurityTokenHandler.ValidateToken(SecurityToken token) at Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModule.TryExtractAndValidateToken(HttpContext httpContext, SPIncomingTokenContext& tokenContext) at Microsoft.SharePoint.IdentityModel.SPApplicationAuthenticationModule.ConstructIClaimsPrincipalAndSetThreadIdentity(HttpApplication httpApplication, HttpContext httpCont... 7ba9aedb-4658-4a32-aaaa-20bcd0d52be6
    The farm is having 2 WFE. There is NLB setting up for them.
    AAM has been set to Default.
    OWA binding set to -AllowHttp, zone set to internal-http. AllowOAuthOverHttp set to true.
    The strange thing is when days ago we finish the installation, we try the link http://{server_name}/somefolder/document.docx to do the test, it works fine.
    But today we try the link http://{NLB_link}/somefolder/documnet.docx, above error occur.
    We are not sure whether AAM setting cause this issue or some other reaone. But even we remove the AAM to use the Server Name in link, still above issue.
    Any idea/comments would be appriciated.

    What is the default AAM? Is it the server_name, or the NLB_Link? Might want to try having the NLB_Link as the primary (default) AAM if you haven't already?
    Not sure if you have seen the Troubleshooting steps here:
    http://technet.microsoft.com/en-us/library/ff431687(v=office.15).aspx#tshoot
    it discusses use of the PowerShell command:
    New-OfficeWebAppHost (http://technet.microsoft.com/en-us/library/jj219459(v=office.15).aspx) which might be required for your NLB_Link.
    Gavin.

  • Office Web Apps - Preview not appearing when acccessing via HTTPS

    I have installed Sharepoint 2013 and Office Web Apps, set the wopibinding, and set the wopizone to be https-external. Everything seems to work fine if accessing the web app using HTTP (can open, edit, preview office web app (WAC) documents)... but if
    I access via HTTPS then I run into a mixed content error when trying to preview the WAC documents... I can open them and edit them without issue using office web apps inside the browser though just not preview.
    If I select "New document" it also takes a while to load and displays a blank pop up window... assume it must be related
    Error message:
    XMLHttpRequest cannot load http://xxxx.org.nz/Docs/_layouts/15/inplview.aspx?List={6E…65723B96E}&ViewCount=1&IsXslView=TRUE&IsCSR=TRUE&IsRibbon=TRUE&Cmd=EcbView.
    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://xxxxxx' is therefore not allowed access.
    [blocked] The page at 'https://xxxxx.org.nz/xx.aspx' was loaded over HTTPS, but ran insecure content from 'http://xxxxxx/Docs/_layouts/15/WopiFrame.aspx?sourced…%20big%20wide%20inter%20web%2Edocx&action=interactivepreview&wdSmallView=1':
    this content should also be loaded over HTTPS.

    Hi  ,
    Before you configure SharePoint 2013 to use Office Web Apps Server via HTTPS, make sure that you have set up Office Web Apps Server by following the steps in Deploy
    a single-server Office Web Apps Server farm that uses HTTPS or Deploy a multi-server, load-balanced Office Web Apps Server farm
    that uses HTTPS.
    Best Regards,
    Eric
    Eric Tao
    TechNet Community Support

  • Office Web Apps - "Could not find trace string in ULS logs" unhealthy?

    I have reviewed everything I could find on unhealthy WAC clusters as my problem seems unrelated to certificate or missing components.  I've already digested
    http://www.wictorwilen.se/office-web-apps-server-2013---machines-are-always-reported-as-unhealthy (Thanks Wictor).
    The particular configuration is an Office Web Apps 2013 ([X-OfficeVersion, 15.0.4551.1005]), running on top of Windows Server 2012, configured for http access (SSL offloaded NLB cluster) and finally linked to Exchange 2013, Lync 2013 and SharePoint
    2013.  Everything works as expected from client side after setting IIS ARR to handle all reverse proxy bits.
    FarmOU                            :
    InternalURL                       : https://officeapps.fqdn/
    ExternalURL                       : https://officeapps.fqdn/
    AllowHTTP                         : True
    SSLOffloaded                      : True
    CertificateName                   :
    EditingEnabled                    : True
    LogLocation                       : C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS
    LogRetentionInDays                : 7
    LogVerbosity                      : Unexpected
    Proxy                             :
    CacheLocation                     : C:\ProgramData\Microsoft\OfficeWebApps\Working\d
    MaxMemoryCacheSizeInMB            : 75
    DocumentInfoCacheSize             : 5000
    CacheSizeInGB                     : 15
    ClipartEnabled                    : False
    TranslationEnabled                : False
    MaxTranslationCharacterCount      : 125000
    TranslationServiceAppId           :
    TranslationServiceAddress         :
    RenderingLocalCacheLocation       : C:\ProgramData\Microsoft\OfficeWebApps\Working\waccache
    RecycleActiveProcessCount         : 5
    AllowCEIP                         : False
    ExcelRequestDurationMax           : 300
    ExcelSessionTimeout               : 450
    ExcelWorkbookSizeMax              : 50
    ExcelPrivateBytesMax              : -1
    ExcelConnectionLifetime           : 1800
    ExcelExternalDataCacheLifetime    : 300
    ExcelAllowExternalData            : True
    ExcelWarnOnDataRefresh            : True
    OpenFromUrlEnabled                : False
    OpenFromUncEnabled                : True
    OpenFromUrlThrottlingEnabled      : True
    PicturePasteDisabled              : True
    RemovePersonalInformationFromLogs : False
    AllowHttpSecureStoreConnections   : False
    Machines                          : {WAC15PD-02, WAC15PD-01}
    The problem however is an incessant logging on the WAC cluster nodes of event 1204,2204 followed almost immediately by 1004,2004.  This repeats every 4min or so...
    - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    - <System>
      <Provider
    Name="Office Web Apps Monitoring" />
      <EventID
    Qualifiers="0">1204</EventID>
      <Level>2</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated
    SystemTime="2014-02-04T20:49:37.000000000Z" />
      <EventRecordID>3043246</EventRecordID>
      <Channel>Microsoft Office Web Apps</Channel>
      <Computer>wac15pd-01.fqdn</Computer>
      <Security
    />
      </System>
    - <EventData>
      <Data><?xml version="1.0" encoding="utf-16"?> <HealthReport xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HealthMessage>UlsControllerWatchdog reported status for UlsController in category 'Verify Trace Logging'. Reported status: Could not find trace string in ULS logs in C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS.</HealthMessage>
    <ComponentOwner>ServicesInfrastructure</ComponentOwner>
    </HealthReport></Data>
      </EventData>
     </Event>
    - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    - <System>
      <Provider
    Name="Office Web Apps Monitoring" />
      <EventID
    Qualifiers="0">2204</EventID>
      <Level>2</Level>
      <Task>1</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated
    SystemTime="2014-02-04T20:49:37.000000000Z" />
      <EventRecordID>3043247</EventRecordID>
      <Channel>Microsoft Office Web Apps</Channel>
      <Computer>wac15pd-01.fqdn</Computer>
      <Security
    />
      </System>
    - <EventData>
      <Data><?xml version="1.0" encoding="utf-16"?> <HealthReport xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HealthMessage>UlsControllerWatchdog reported status for UlsController in category 'Verify Trace Logging'. Reported status: Could not find trace string in ULS logs in
    C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS.</HealthMessage> <ComponentOwner>ServicesInfrastructure</ComponentOwner>
    </HealthReport></Data>
      </EventData>
      </Event>
    - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    - <System>
      <Provider
    Name="Office Web Apps Monitoring" />
      <EventID
    Qualifiers="0">1004</EventID>
      <Level>2</Level>
      <Task>10002</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated
    SystemTime="2014-02-04T20:49:39.000000000Z" />
      <EventRecordID>3043266</EventRecordID>
      <Channel>Microsoft Office Web Apps</Channel>
      <Computer>wac15pd-01.fqdn</Computer>
      <Security
    />
      </System>
    - <EventData>
      <Data><?xml version="1.0" encoding="utf-16"?> <HealthReport xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HealthMessage>AgentManagerWatchdog reported status for
    AgentManagerWatchdog in category 'Recent Watchdog Reports'. Reported status: Machine health is Unhealthy</HealthMessage> </HealthReport></Data>
      </EventData>
     </Event>
    - <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
    - <System>
      <Provider
    Name="Office Web Apps Monitoring" />
      <EventID
    Qualifiers="0">2004</EventID>
      <Level>2</Level>
      <Task>10002</Task>
      <Keywords>0x80000000000000</Keywords>
      <TimeCreated
    SystemTime="2014-02-04T20:49:39.000000000Z" />
      <EventRecordID>3043267</EventRecordID>
      <Channel>Microsoft Office Web Apps</Channel>
      <Computer>wac15pd-01.fqdn</Computer>
      <Security
    />
      </System>
    - <EventData>
      <Data><?xml version="1.0" encoding="utf-16"?> <HealthReport xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <HealthMessage>AgentManagerWatchdog reported status for
    AgentManagerWatchdog in category 'Recent Watchdog Reports'. Reported status: Machine health is Unhealthy</HealthMessage> </HealthReport></Data>
      </EventData>
      </Event>
    Further exploration of ULS log files (C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS) did not yield particularly much, except the following;
    02/04/2014 20:48:04.48  UlsControllerWatchdog.exe (0x1244)       0x0F60 Services Infrastructure        Uls Controller Watchdog        ajbam Assert 
     We're about to trace a string for category MsoSpUlsControllerWatchdog at level Info and we expect to find in the log later, but it appears that the category has been throttled. We will never be able to find the string and this watchdog will always fail.
    StackTrace:   at Microsoft.Office.Web.UlsControllerWatchdog.Program.CheckServiceInstance(ServiceInstance serviceInstance)     at Microsoft.Office.Web.Common.WatchdogHelperThreadManager.GetHealthResults(WatchdogExecutionContext
    context, ServiceInstance si)     at Microsoft.Office.Web.Common.WatchdogHelperThreadManager.WatchingThreadMethod(Object o)     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback
    callback, Object state, Boolean preserveSyncCtx)     at System.Threading.ExecutionContext.Ru... 345fbec5-e958-4f1f-bf56-d65c1c0d472a
    02/04/2014 20:48:04.48* UlsControllerWatchdog.exe (0x1244)       0x0F60 Services Infrastructure        Uls Controller Watchdog        ajbam Assert 
     ...n(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)     at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()    
    at System.Threading.ThreadPoolWorkQueue.Dispatch()   345fbec5-e958-4f1f-bf56-d65c1c0d472a
    02/04/2014 20:48:05.52  UlsControllerWatchdog.exe (0x1244)       0x0F60 Services Infrastructure        Services Infrastructure Health adhog Unexpected Health report
    by UlsControllerWatchdog: Agent: UlsController, eventId: 1204, eventType: Error, categoryId: 1, eventMessage: <?xml version="1.0" encoding="utf-16"?>  <HealthReport xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">    <HealthMessage>UlsControllerWatchdog reported status for UlsController in category 'Verify Trace Logging'. Reported
    status: Could not find trace string in ULS logs in C:\ProgramData\Microsoft\OfficeWebApps\Data\Logs\ULS.</HealthMessage>    <ComponentOwner>ServicesInfrastructure</ComponentOwner>  </HealthReport> 345fbec5-e958-4f1f-bf56-d65c1c0d472a
    02/04/2014 20:48:05.52  UlsControllerWatchdog.exe (0x1244)       0x0F60 Services Infrastructure        Services Infrastructure Health adhoh Unexpected Health report
    by UlsControllerWatchdog (persistent): Agent: UlsController, eventId: 2204, eventType: Error, categoryId: 1 345fbec5-e958-4f1f-bf56-d65c1c0d472a
    I suspect these might be related, but can't seem to find any logical explanation why this should cause the Get-OfficeWebAppsMachine to report HealthStatus of Unhealthy.  If related, is there a way to disable this check or remove throttling in a safe
    way?  Alternatively if this is some coding issue (I've not found any other blog/QA dealing with this particularly) it would be nice to get confirmation of this and potentially a fix/solution.
    Any help would be greatly appreciated. Thank you!

    Hi ChristiaanB,
    You get this ULS error because you change the log verbosity of the OWA farm. I wrote an article for this on my blog : OWA unhealthy uls issue
    Regards,
    Wes

Maybe you are looking for